3.内核对象
1.内核对象的生命周期可能长于创建它的那个进程。
2.关注返回值是NULL 或者INVALID_HANDLE_VALUE等。(例如CreateMutex() 和 CreateFile())
3.识别是否是内核对象还是用户/GDI对象,就看参数中有没有PSECURITY_ATTRIBUTES.
=》后面云里雾里。没有走出来,待后续补。
1 /******************************************************************** 2 created: 2020/07/07 16:28 3 filename: H:\2020-2021\Windows核心编程\Windows核心编程\3.内核对象\3.内核对象.cpp 4 file base: 3.内核对象 5 author: 大海 6 7 purpose: Practice makes perfect. 8 *********************************************************************/ 9 10 #include "resource.h" 11 #include <windows.h> 12 INT_PTR CALLBACK Dlg_Proc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { 13 14 switch (uMsg) 15 { 16 case WM_CLOSE: 17 PostQuitMessage(0); 18 break; 19 case WM_INITDIALOG: 20 21 22 23 break; 24 default: 25 break; 26 } 27 28 return FALSE; 29 } 30 31 32 int WINAPI WinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_ LPSTR lpCmdLine,_In_ int nShowCmd) { 33 34 DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG_MAIN),NULL,Dlg_Proc); 35 36 //若要创建能继承的句柄,父进程必须指定一个SECURITY_ATTRIBUTES结构并对它进行初始化 37 SECURITY_ATTRIBUTES sa; 38 sa.nLength = sizeof(sa); 39 sa.lpSecurityDescriptor = NULL; 40 sa.bInheritHandle = TRUE; 41 42 43 44 45 46 return 0; 47 }

浙公网安备 33010602011771号