freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

操作系統(tǒng)優(yōu)秀課程設計(更新版)

2025-08-15 14:14上一頁面

下一頁面
  

【正文】 CToolhelp thProcesses(TH32CS_SNAPPROCESS)。 //格式化字符串到指定內存位置_tcschr(sz, 0)sz 中有以 0 為 ASCII 的字符的位置, //pszFormat 為格式,argList 可變參數列表 Edit_SetText(hwnd, sz)。下面則顯示選中的進程的具體信息如下圖所以:2 查看暴風影音的進程和 ID 如下圖:3 選擇 Modules!菜單項。第三個域顯示模塊的大小(用字節(jié)數表示) 。當查看這個進程列表時,可以使用 VMMap 菜單項(當查看模塊信息時,該菜單項禁用) 。然后,系統(tǒng)為新進程創(chuàng)建一個虛擬地址空間,并將可執(zhí)行文件或任何必要的 D L L 文件的代碼和數據加載到該進程的地址空間中。BOOL CreateProcess(PCTSTR pszApplicationName, //pszApplicationName 指定要創(chuàng)建進程的應用程序名,如在此設置需要全名 PTSTR pszCommandLine, //需要創(chuàng)建進程的命令行參數,一般第一個字符用來存儲應用程序名,不需要全地址 PSECURITY_ATTRIBUTES psaProcess, //描述進程的可繼承特征,為 SECURITY_ATTRIBUTES 結構體 PSECURITY_ATTRIBUTES psaThread, //描述主線程的可繼承性 BOOL bInheritHandles, //被創(chuàng)建的進程是否繼承當前進程的內核操作權限 DWORD fdwCreate, //規(guī)定如何創(chuàng)建進程 PVOID pvEnvironment, //pvEnvironment 參數用于指向包含新進程將要使用的環(huán)境字符串的內存塊。使得調用 ToolHelp 變得更容易一些。$ 各個文件的作用一般而言,每個 C++/C 程序通常由頭文件(header files)和定義文件(definition files)組成。一個標準的線程由線程 ID,當前指令指針(PC),寄存器集合和堆棧組成。當調用一個用于創(chuàng)建內核對象的函數時,該函數就返回一個用于標識該對象的句柄。目 錄第一章基本原理 .......................................................................................................................................1$ 代碼中涉及的概念 .......................................................................................................................1$ 各個文件的作用 ...........................................................................................................................2第二章功能實現 .......................................................................................................................................4$ 各個函數的功能 ...........................................................................................................................4$ 必讀函數 CreateProcess ..................................................................................................4$ 中各個主要的函數作用 ........................................................................5$ 功能 ...............................................................................................................................................5$ 界面顯示 .......................................................................................................................................6第三章實現 ...............................................................................................................................................9$ 代碼精讀 .......................................................................................................9$ 代碼精讀 ..........................................................................................................19第四章 實驗心得 ...................................................................................................................................27第一章基本原理 $ 代碼中涉及的概念 ProcessInfo 應用程序中主要是運用了 Toolhelp 函數來實現的。例如,進程對象有一個進程 ID、一個基本優(yōu)先級和一個退出代碼,而文件對象則擁有一個字節(jié)位移、一個共享模式和一個打開模式。6 線程線程(thread)是 進程中某個單一順序的控制流。具體的數據類型可以在 VC++中右擊“go to Definition” 查看。作者用C++類封裝了一個 ToolHelp 快照。如線程堆棧和堆分配空間??梢詫⑦M程內核對象視為由進程的統(tǒng)計信息組成的一個較小的數據結構??梢钥吹?,與該進程的 ID 一道顯示的還有它的父進程的 ID,進程的優(yōu)先級類,以及該進程環(huán)境中當前正在運行的線程數目。如果模塊不是在它的首選基地址上映射的,那么首選基地址顯示在括號中。 圖 21 圖 2 – 2 $ 界面顯示 1 啟動 exe : 在下拉列表中列出每個進程的名字和 ID。 //chDIMOF 是一個宏define chDIMOF(Array) (sizeof(Array) / sizeof(Array[0])) _vstprintf(_tcschr(sz, 0), pszFormat, argList)。//禁止重繪ComboBox_ResetContent(hwndList)。pe)) //遍歷所有進程{ TCHAR sz[1024]。 //格式化到字符串 int n = ComboBox_AddString(hwndList, sz)。 CToolhelp thProcesses(TH32CS_SNAPPROCESS)。 MODULEENTRY32 me = { sizeof(me) }。t been added before //模塊信息還未被添加則添加 ListBox_AddString(hwndModuleHelp, )。 ListBox_GetText(hwndModuleHelp, i, sz)。 InvalidateRect(hwndList, NULL, FALSE)。s NT header //e_lfanew 是當前 DOS 頭(pvModuleRemote)是相對實際 PE 頭標的相對偏移量 Toolhelp32ReadProcessMemory(dwProcessId, (PBYTE) pvModuleRemote + , amp。 BOOL fOk = (amp。 // No need to continue looping } } // 顯示 Modules // 顯示地址用的字符數 const int cchAddress = sizeof(PVOID) * 2。me)) { if ( == 65535) { // Module was implicitly loaded and cannot be unloaded //加載方式為隱式加載不能被卸載 AddText(hwnd, TEXT( Fixed))。te)。 if (( 15) amp。 (nPriority 16)) nPriority = 16。 AddText(hwnd, TEXT(Process Information:\r\n))。me)。 //調用 Dlg_PopulateProcessList 初始化默認顯示的 ProcessList // By default, show the running processes Dlg_PopulateProcessList(hwnd)。//設置列表的位置定義樣式為不換行 hwndCtl = GetDlgItem(hwnd, IDC_RESULTS)。 //將 ID_VMMAP 菜單置為不可用 DrawMenuBar(hwnd)。 case IDC_PROCESSMODULELIST: //響應來自列表的消息 if (codeNotify == CBN_SELCHANGE) { //響應選擇項發(fā)生變化消息 DWORD dw = ComboBox_GetCurSel(hwndCtl)。 case ID_VMMAP: //響應菜單 ID_VMMAP 點擊的消息 STARTUPINFO si = { sizeof(si) }。pi)。 //這里是消息映射 } return(FALSE)。 //構造函數 ~CToolhelp()。 BOOL ModuleFind(PVOID pvBaseAddr, PMODULEENTRY32 pme) const。 //獲得進程當前所使用的堆棧 BOOL HeapNext(PHEAPENTRY32 phe) const。}/////////////////////////////////////////////////////////////////////////////////析構函數釋放對象inline CToolhelp::~CToolhelp() { if (m_hSnapshot != INVALID_HANDLE_VALUE) CloseHandle(m_hSnapshot)。s access token if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, amp。 fOk = (GetLastError() == ERROR_SUCCESS)。 if (fOk amp。 // Remove the [System Process] (PID = 0) return(fOk)。}inline BOOL CToolhelp::ModuleNext(PMODULEENTRY32 pme) const { return(Module32Next(m_hSnapshot, pme))。 for (BOOL fOk = ModuleFirst(pme)。 HEAPLIST32 hl = { sizeof(hl) }。 HEAPENTRY32 he = { sizeof(he) }。}inline BOOL CToolhelp::HeapListFirst(PHEAPLIST32 phl) const { return(Heap32ListFirst(m_hSnapshot, phl))。 fOkHL = HeapListNext(amp。 VirtualQueryEx(hProcess, (PVOID) , amp。代碼的學習可以從讀代碼開始,這是一個學習的好
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1