次の方法で共有


NtQueryObject 関数 (winternl.h)

[この関数は、それ以上の通知なしに Windows から変更または削除される場合があります。]

さまざまな種類のオブジェクト情報を取得します。

構文

__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で列挙される、取得するオブジェクト情報の種類を示す次のいずれかの値。

期間 説明
ObjectBasicInformation 次の「解説」セクションに示すように、 PUBLIC_OBJECT_BASIC_INFORMATION 構造体を返します。
ObjectTypeInformation 次の「解説」セクションに示すように、 PUBLIC_OBJECT_TYPE_INFORMATION 構造体を返します。

[out, optional] ObjectInformation

要求された情報が返されるバッファーへの省略可能なポインター。 この情報のサイズと構造は、 ObjectInformationClass パラメーターの値によって異なります。

[in] ObjectInformationLength

ObjectInformation パラメーターが指すバッファーのサイズ (バイト単位)。

[out, optional] ReturnLength

関数が要求した情報の実際のサイズを書き込む場所への省略可能なポインター。 そのサイズが ObjectInformationLength パラメーター以下の場合、関数は情報を ObjectInformation バッファーにコピーします。それ以外の場合は、NTSTATUS エラー コードを返し、要求された情報を受信するために必要なバッファーのサイズを ReturnLength で返します。

戻り値

NTSTATUS またはエラー コードを返します。

NTSTATUS エラー コードの形式と重要性は、WDK で使用できる Ntstatus.h ヘッダー ファイルに記載されており、WDK ドキュメントで説明されています。

注釈

この関数には、ヘッダー ファイルまたはインポート ライブラリが関連付けされません。 Ntdll.dll に動的にリンクするには、 LoadLibrary 関数または GetProcAddress 関数を使用する必要があります。

ObjectInformationClass パラメーターが ObjectBasicInformation の場合、情報は次の構造体に含まれます。

typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {
    ULONG Attributes;
    ACCESS_MASK GrantedAccess;
    ULONG HandleCount;
    ULONG PointerCount;
    ULONG Reserved[10];    // reserved for internal use
 } PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION;

この構造体で使用できるメンバーには、ハンドルのオブジェクト属性 (Attributes)、ハンドルに付与されるアクセス (GrantedAccess)、オブジェクトに対する開いているハンドルの数 (HandleCount)、およびオブジェクトへのカーネル参照の数 (PointerCount) が含まれます。

ObjectInformationClass パラメーターが ObjectTypeInformation の場合、情報は次の構造体に含まれます。

typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
    UNICODE_STRING TypeName;
    ULONG Reserved [22];    // reserved for internal use
} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;

この構造体で使用できるメンバーは、オブジェクト型の名前文字列 (TypeName) のみです。

要件

要件
対象プラットフォーム Windows
ヘッダー winternl.h
Library ntdll.lib
[DLL] ntdll.dll