OB_PRE_CREATE_HANDLE_INFORMATION結構 (wdm.h)
OB_PRE_CREATE_HANDLE_INFORMATION 結構會將有關開啟之線程或進程句柄的資訊提供給 ObjectPreCallback 例程。
語法
typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
ACCESS_MASK DesiredAccess;
ACCESS_MASK OriginalDesiredAccess;
} OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION;
成員
DesiredAccess
ACCESS_MASK 值,指定要授與句柄的訪問許可權。 根據預設,此成員等於 OriginalDesiredAccess,但 ObjectPreCallback 例程可以修改此值來限制授與的存取權。
驅動程式可以使用下列旗標來處理句柄:
旗 | 允許的作業 |
---|---|
PROCESS_CREATE_PROCESS | 建立進程的新子進程。 |
PROCESS_CREATE_THREAD | 在進程的內容中建立新的線程。 |
PROCESS_DUP_HANDLE | 呼叫使用者模式 DuplicateHandle 例程,來回重複進程內容中的句柄。 |
PROCESS_SET_QUOTA | 設定進程的工作集大小,例如呼叫 user-mode SetProcessWorkingSetSize 例程。 |
PROCESS_SET_INFORMATION | 修改進程設定,例如呼叫user-mode SetPriorityClass 例程。 |
PROCESS_SUSPEND_RESUME | 暫停或繼續程式。 |
PROCESS_TERMINATE | 呼叫 user-mode TerminateProcess 例程,以終止進程。 |
PROCESS_VM_OPERATION | 修改進程的位址空間,例如呼叫User-mode WriteProcessMemory 和 VirtualProtectEx 例程。 |
PROCESS_VM_WRITE | 寫入進程的位址空間,例如呼叫 user-mode WriteProcessMemory 例程。 |
驅動程式可以使用下列旗標來處理線程:
旗 | 允許的作業 |
---|---|
THREAD_DIRECT_IMPERSONATION | 讓伺服器線程模擬其中一個用戶端。 |
THREAD_IMPERSONATE | 模擬作系統的匿名登入令牌,例如呼叫使用者模式 ImpersonateAnonymousToken 例程。 |
THREAD_SET_CONTEXT | 修改線程的執行內容,例如呼叫 user-mode SetThreadContext 例程。 |
THREAD_SET_INFORMATION | 修改線程設定,例如呼叫 user-mode SetThreadIdealProcessor 例程。 此訪問許可權所允許的作業是THREAD_SET_LIMITED_INFORMATION訪問許可權所允許的超集。 |
THREAD_SET_LIMITED_INFORMATION | 修改一組有限的線程設定,例如呼叫 user-mode SetThreadAffinityMask 和 SetThreadPriorityBoost 例程。 |
THREAD_SET_THREAD_TOKEN | 修改線程模擬令牌的屬性,例如呼叫 user-mode SetTokenInformation 例程。 |
THREAD_SUSPEND_RESUME | 暫停或繼續線程,例如呼叫使用者模式 SuspendThread 和 ResumeThread 例程。 |
THREAD_TERMINATE | 終止線程,例如呼叫 user-mode TerminateThread 例程。 |
OriginalDesiredAccess
ACCESS_MASK值,指定為句柄要求的原始存取權。
言論
您無法將訪問許可權新增至 DesiredAccess 成員中指定的許可權。 如果存取權列為可修改的旗標,則可以移除訪問許可權。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows Server 2008 和更新版本的 Windows作系統。 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |