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 | 设置进程的工作集大小,例如通过调用用户模式 SetProcessWorkingSetSize 例程。 |
PROCESS_SET_INFORMATION | 通过调用用户模式 SetPriorityClass 例程来修改进程设置。 |
PROCESS_SUSPEND_RESUME | 暂停或恢复进程。 |
PROCESS_TERMINATE | 通过调用用户模式 TerminateProcess 例程来终止进程。 |
PROCESS_VM_OPERATION | 通过调用 user-mode WriteProcessMemory 和 VirtualProtectEx 例程来修改进程的地址空间。 |
PROCESS_VM_WRITE | 写入进程的地址空间,例如通过调用用户模式 WriteProcessMemory 例程。 |
驱动程序可以使用以下标志来处理线程:
旗 | 允许的作 |
---|---|
THREAD_DIRECT_IMPERSONATION | 使服务器线程能够模拟其中一个客户端。 |
THREAD_IMPERSONATE | 模拟作系统的匿名登录令牌,例如通过调用用户模式 ImpersonateAnonymousToken 例程。 |
THREAD_SET_CONTEXT | 通过调用用户模式 SetThreadContext 例程来修改线程的执行上下文。 |
THREAD_SET_INFORMATION | 通过调用用户模式 SetThreadIdealProcessor 例程来修改线程设置。 此访问权限允许的作是THREAD_SET_LIMITED_INFORMATION访问权限允许的作的超集。 |
THREAD_SET_LIMITED_INFORMATION | 通过调用用户模式 SetThreadAffinityMask 和 SetThreadPriorityBoost 例程来修改有限的线程设置集。 |
THREAD_SET_THREAD_TOKEN | 通过调用用户模式 SetTokenInformation 例程来修改线程模拟令牌的属性。 |
THREAD_SUSPEND_RESUME | 暂停或恢复线程,例如通过调用用户模式 SuspendThread 和 ResumeThread 例程。 |
THREAD_TERMINATE | 通过调用用户模式 TerminateThread 例程来终止线程。 |
OriginalDesiredAccess
一个ACCESS_MASK值,该值指定为句柄请求的原始访问。
言论
不能将访问权限添加到 DesiredAccess 成员中指定的权限之外。 如果访问权限列为可修改标志,则可以删除访问权限。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Server 2008 及更高版本的 Windows作系统中可用。 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |