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 にすることができます。 ObjectNameInfo が NULL の場合、Length は 0 である必要があります。
[in] Length
ObjectNameInfo によって指されるバッファーのサイズ (バイト単位)。 このパラメーターは省略可能であり、0 にすることができます。 Length が 0 の場合、ReturnLength は、オブジェクト名情報を保持するために必要なバッファーのサイズをバイト単位で受け取ります。 ほとんどのオブジェクト名に対応するバッファーの妥当なサイズは 1024 バイトです。 Length が 0 の場合、ObjectNameInfo は NULL にすることができます。
[out] ReturnLength
返されたオブジェクト名情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 オブジェクト名 (存在する場合) には、NULL ターミネータとすべてのパス区切り記号 "\" が名前に含まれます。 ObQueryNameString がSTATUS_INFO_LENGTH_MISMATCHを返す場合は、このパラメーターを必要なバッファー長に設定します。
戻り値
ObQueryNameString は 、次のようなSTATUS_SUCCESSまたは NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
ObjectNameInfo が指すバッファーが小さすぎて、要求されたオブジェクト名情報を保持できません。 ReturnLength は 、必要なバッファー サイズを指します。 この場合、オブジェクト名の情報は返されません。 これはエラー コードです。 Length が 0 に設定されている場合は、STATUS_INFO_LENGTH_MISMATCHが返されます。 |
注釈
指定されたオブジェクトの名前が指定され、オブジェクト名が正常に取得された場合、返される文字列は、オブジェクトの完全なパスのできるだけ多くを含む、指定されたオブジェクトの名前です。 この場合、 ObQueryNameString は Name.Buffer を、指定されたオブジェクトの NULL で終わる名前のアドレスに設定します。 Name.MaximumLength の値は、NULL 終了を含むオブジェクト名の長さです。 Name.Length の値は、オブジェクト名のみの長さです。
指定されたオブジェクトが名前のない場合、またはオブジェクト名が正常に取得されなかった場合、 ObQueryNameString は Name.Buffer を NULL に設定し、 Name.Length と Name.MaximumLength を 0 に設定します。
ObjectNameInfo のストレージは、ページ プールまたは非ページ プールから割り当てられます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (FltKernel.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |