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 場合、長 は 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 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (FltKernel.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |