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
대상 플랫폼 유니버설
헤더 ntifs.h(FltKernel.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

추가 정보

UNICODE_STRING