Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма 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, длина должна быть нулевой.
[in] Length
Размер буфера в байтах, на который указывает ObjectNameInfo. Этот параметр является необязательным и может быть равен нулю. Если длина равна нулю, ReturnLength получает размер в байтах буфера, необходимого для хранения сведений об имени объекта. Разумный размер буфера для размещения большинства имен объектов составляет 1024 байта. Если длина равна нулю, ObjectNameInfo можно NULL.
[out] ReturnLength
Указатель на выделенную вызывающим переменную, которая получает размер в байтах возвращаемого имени объекта. Имя объекта (при наличии) включает терминатор NULL и все разделители пути "\" в имени. Если obQueryNameString возвращает STATUS_INFO_LENGTH_MISMATCH, он задает этот параметр требуемой длине буфера.
Возвращаемое значение
obQueryNameString возвращает STATUS_SUCCESS или значение NTSTATUS, например следующее:
| Возвращаемый код | Описание |
|---|---|
|
Буфер, на который указывает ObjectNameInfo, слишком мал, чтобы содержать запрошенные сведения об имени объекта. ReturnLength указывает на требуемый размер буфера. В этом случае сведения об имени объекта не возвращаются. Это код ошибки. Помните, что если длина равно нулю, возвращается 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 (include FltKernel.h, Ntifs.h) |
| библиотеки | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | < DISPATCH_LEVEL |