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 |
---|---|
|
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 |