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 WriteProcessMemoryVirtualProtectEx 例程来修改进程的地址空间。
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 通过调用用户模式 SetThreadAffinityMaskSetThreadPriorityBoost 例程来修改有限的线程设置集。
THREAD_SET_THREAD_TOKEN 通过调用用户模式 SetTokenInformation 例程来修改线程模拟令牌的属性。
THREAD_SUSPEND_RESUME 暂停或恢复线程,例如通过调用用户模式 SuspendThreadResumeThread 例程。
THREAD_TERMINATE 通过调用用户模式 TerminateThread 例程来终止线程。

OriginalDesiredAccess

一个ACCESS_MASK值,该值指定为句柄请求的原始访问。

言论

不能将访问权限添加到 DesiredAccess 成员中指定的权限之外。 如果访问权限列为可修改标志,则可以删除访问权限。

要求

要求 价值
最低支持的客户端 在 Windows Server 2008 及更高版本的 Windows作系统中可用。
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)

另请参阅

ACCESS_MASK

ObjectPreCallback