次の方法で共有


ObQueryNameString 関数 (ntifs.h)

ObQueryNameString ルーチンは、呼び出し元がポインターを持つ特定のオブジェクトの名前 (存在する場合) を提供します。

構文

NTSTATUS ObQueryNameString(
  [in]            PVOID                    Object,
  [out, optional] POBJECT_NAME_INFORMATION ObjectNameInfo,
  [in]            ULONG                    Length,
  [out]           PULONG                   ReturnLength
);

パラメーター

[in] Object

名前が要求されるオブジェクトへのポインター。 このパラメーターは必須であり、 NULL にすることはできません。

[out, optional] ObjectNameInfo

オブジェクト名情報を受け取る、次の型の呼び出し元によって割り当てられたバッファーへのポインター。

typedef struct _OBJECT_NAME_INFORMATION {
  UNICODE_STRING Name;
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;

このパラメーターは省略可能であり、 NULL にすることができます。 ObjectNameInfoNULL の場合、Length は 0 である必要があります。

[in] Length

ObjectNameInfo によって指されるバッファーのサイズ (バイト単位)。 このパラメーターは省略可能であり、0 にすることができます。 Length が 0 の場合、ReturnLength は、オブジェクト名情報を保持するために必要なバッファーのサイズをバイト単位で受け取ります。 ほとんどのオブジェクト名に対応するバッファーの妥当なサイズは 1024 バイトです。 Length が 0 の場合、ObjectNameInfoNULL にすることができます

[out] ReturnLength

返されたオブジェクト名情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 オブジェクト名 (存在する場合) には、NULL ターミネータとすべてのパス区切り記号 "\" が名前に含まれます。 ObQueryNameString がSTATUS_INFO_LENGTH_MISMATCHを返す場合は、このパラメーターを必要なバッファー長に設定します。

戻り値

ObQueryNameString は 、次のようなSTATUS_SUCCESSまたは NTSTATUS 値を返します。

リターン コード 説明
STATUS_INFO_LENGTH_MISMATCH
ObjectNameInfo が指すバッファーが小さすぎて、要求されたオブジェクト名情報を保持できません。 ReturnLength は 、必要なバッファー サイズを指します。 この場合、オブジェクト名の情報は返されません。 これはエラー コードです。 Length が 0 に設定されている場合は、STATUS_INFO_LENGTH_MISMATCHが返されます。

注釈

指定されたオブジェクトの名前が指定され、オブジェクト名が正常に取得された場合、返される文字列は、オブジェクトの完全なパスのできるだけ多くを含む、指定されたオブジェクトの名前です。 この場合、 ObQueryNameStringName.Buffer を、指定されたオブジェクトの NULL で終わる名前のアドレスに設定します。 Name.MaximumLength の値は、NULL 終了を含むオブジェクト名の長さです。 Name.Length の値は、オブジェクト名のみの長さです。

指定されたオブジェクトが名前のない場合、またはオブジェクト名が正常に取得されなかった場合、 ObQueryNameStringName.BufferNULL に設定し、 Name.LengthName.MaximumLength を 0 に設定します。

ObjectNameInfo のストレージは、ページ プールまたは非ページ プールから割り当てられます。

要件

要件
サポートされている最小のクライアント Windows 2000
対象プラットフォーム ユニバーサル
Header ntifs.h (FltKernel.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL < DISPATCH_LEVEL

こちらもご覧ください

UNICODE_STRING