Функция 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, длина должна быть равна нулю.
[in] Length
Размер (в байтах) буфера, на который указывает ObjectNameInfo. Этот параметр является необязательным и может быть равен нулю. Если длина равна нулю, ReturnLength получает размер буфера в байтах, необходимый для хранения сведений об имени объекта. Достаточный размер буфера для размещения большинства имен объектов составляет 1024 байта. Если длина равна нулю, objectNameInfo может иметь значение NULL.
[out] ReturnLength
Указатель на переменную, выделенную вызывающим объектом, которая получает размер возвращаемого имени объекта в байтах. Имя объекта (при наличии) включает в себя признак конца NULL и все разделители пути "\" в имени. Если Объект ObQueryNameString возвращает STATUS_INFO_LENGTH_MISMATCH, он задает для этого параметра требуемую длину буфера.
Возвращаемое значение
ObQueryNameString возвращает STATUS_SUCCESS или значение NTSTATUS, например следующее:
Код возврата | Описание |
---|---|
|
Буфер, на который указывает ObjectNameInfo, слишком мал для хранения запрошенных сведений об имени объекта. ReturnLength указывает на требуемый размер буфера. В этом случае сведения об имени объекта не возвращаются. Это код ошибки. Имейте в виду, что если значение Length равно нулю, возвращается STATUS_INFO_LENGTH_MISMATCH . |
Комментарии
Если заданный объект имеет имя и имя объекта было успешно приобретено, возвращаемая строка — это имя заданного объекта, включая как можно больше полного пути к объекту. В этом случае ObQueryNameString задает для name.Buffer адрес имени указанного объекта, завершающегося null. Значение Name.MaximumLength — это длина имени объекта, включая завершение null . Значение Name.Length равно длине только имени объекта.
Если заданный объект неизвестен или имя объекта не было успешно приобретено, Параметр ObQueryNameString задает для Name.Bufferзначение NULL , а для параметра Name.Length и Name.MaximumLength — нулевое значение.
Хранилище для ObjectNameInfo можно выделить из выгружаемого или невыгружаемого пула.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая FltKernel.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |