NtQueryObject 函数 (ntifs.h)

NtQueryObject 例程提供有关提供的对象的信息。

语法

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryObject(
  [in, optional]  HANDLE                   Handle,
  [in]            OBJECT_INFORMATION_CLASS ObjectInformationClass,
  [out, optional] PVOID                    ObjectInformation,
  [in]            ULONG                    ObjectInformationLength,
  [out, optional] PULONG                   ReturnLength
);

参数

[in, optional] Handle

要获取相关信息的对象句柄。

[in] ObjectInformationClass

指定一个 OBJECT_INFORMATION_CLASS 值,该值确定 ObjectInformation 缓冲区中返回的信息的类型。

[out, optional] ObjectInformation

指向调用方分配的缓冲区的指针,该缓冲区接收请求的信息。

[in] ObjectInformationLength

指定 ObjectInformation 缓冲区的大小(以字节为单位)。

[out, optional] ReturnLength

指向接收所请求密钥信息的大小(以字节为单位)的变量的指针。 如果 NtQueryObject 返回STATUS_SUCCESS,则变量包含返回的数据量。 如果 NtQueryObject 返回STATUS_BUFFER_OVERFLOW或STATUS_BUFFER_TOO_SMALL,则可以使用变量的值来确定所需的缓冲区大小。

返回值

NtQueryObject 返回STATUS_SUCCESS或适当的错误状态。 可能的错误状态代码包括:

返回代码 说明
STATUS_ACCESS_DENIED
没有足够的权限来执行此查询。
STATUS_INVALID_HANDLE
提供的对象句柄无效。
STATUS_INFO_LENGTH_MISMATCH
信息长度不足以保存数据。

注解

如果对 NtQueryObject 函数的调用在用户模式下发生,则应使用名称“NtQueryObject”而不是“ZwQueryObject”。

对于内核模式驱动程序的调用,Windows Native System Services 例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式可能有所不同。 有关例程 的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

   
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 ntifs.h (包括 Ntifs.h、FltKernel.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDIs,PowerIrpDDis

另请参阅

OBJECT_INFORMATION_CLASS

PUBLIC_OBJECT_BASIC_INFORMATION

PUBLIC_OBJECT_TYPE_INFORMATION

使用本机系统服务例程的 Nt 和 Zw 版本