Compartir a través de


Función ObQueryNameString (ntifs.h)

La rutina ObQueryNameString proporciona el nombre, si hay uno, de un objeto determinado al que el llamador tiene un puntero.

Sintaxis

NTSTATUS ObQueryNameString(
  [in]            PVOID                    Object,
  [out, optional] POBJECT_NAME_INFORMATION ObjectNameInfo,
  [in]            ULONG                    Length,
  [out]           PULONG                   ReturnLength
);

Parámetros

[in] Object

Puntero al objeto para el que se solicita el nombre. Este parámetro es obligatorio y no puede ser NULL.

[out, optional] ObjectNameInfo

Puntero a un búfer asignado por el autor de la llamada, del tipo siguiente, que recibe la información del nombre del objeto:

typedef struct _OBJECT_NAME_INFORMATION {
  UNICODE_STRING Name;
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;

Este parámetro es opcional y puede ser NULL. Si ObjectNameInfo es NULL, Length debe ser cero.

[in] Length

Tamaño, en bytes, del búfer al que apunta ObjectNameInfo. Este parámetro es opcional y puede ser cero. Si Length es cero, ReturnLength recibe el tamaño, en bytes, del búfer necesario para contener la información del nombre del objeto. Un tamaño razonable para que el búfer admita la mayoría de los nombres de objeto es de 1024 bytes. Si Length es cero, ObjectNameInfo puede ser NULL.

[out] ReturnLength

Puntero a una variable asignada por el autor de la llamada que recibe el tamaño, en bytes, de la información de nombre de objeto devuelta. El nombre del objeto (cuando está presente) incluye un terminador NULL y todos los separadores de ruta de acceso "\" en el nombre. Si ObQueryNameString devuelve STATUS_INFO_LENGTH_MISMATCH, establece este parámetro en la longitud del búfer necesaria.

Valor devuelto

ObQueryNameString devuelve STATUS_SUCCESS o un valor NTSTATUS como el siguiente:

Código devuelto Descripción
STATUS_INFO_LENGTH_MISMATCH
El búfer al que apunta ObjectNameInfo es demasiado pequeño para contener la información de nombre de objeto solicitada. ReturnLength apunta al tamaño de búfer necesario. En este caso, no se devuelve información de nombre de objeto. Se trata de un código de error. Tenga en cuenta que si Length está establecido en cero, se devuelve STATUS_INFO_LENGTH_MISMATCH .

Comentarios

Si el objeto especificado se denomina y el nombre del objeto se adquirió correctamente, la cadena devuelta es el nombre del objeto especificado, incluida la mayor parte de la ruta de acceso completa del objeto posible. En este caso, ObQueryNameString establece Name.Buffer en la dirección del nombre terminado en NULL del objeto especificado. El valor de Name.MaximumLength es la longitud del nombre de objeto, incluida la terminación NULL . El valor de Name.Length es la longitud del único nombre del objeto.

Si el objeto especificado no tiene nombre o si el nombre del objeto no se adquirió correctamente, ObQueryNameString establece Name.Buffer en NULL y establece Name.Length y Name.MaximumLength en cero.

El almacenamiento de ObjectNameInfo se puede asignar desde un grupo paginado o no paginado.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000
Plataforma de destino Universal
Encabezado ntifs.h (incluya FltKernel.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Consulte también

UNICODE_STRING