Compartilhar via


Função ObQueryNameString (ntifs.h)

A rotina ObQueryNameString fornece o nome, se houver um, de um determinado objeto ao qual o chamador tem um ponteiro.

Sintaxe

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

Parâmetros

[in] Object

Um ponteiro para o objeto para o qual o nome é solicitado. Esse parâmetro é necessário e não pode ser NULL.

[out, optional] ObjectNameInfo

Um ponteiro para um buffer alocado pelo chamador, do seguinte tipo, que recebe as informações de nome do objeto:

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

Esse parâmetro é opcional e pode ser NULL. Se objectNameInfo for NULL, de comprimento deverá ser zero.

[in] Length

O tamanho, em bytes, do buffer apontado por ObjectNameInfo. Esse parâmetro é opcional e pode ser zero. Se Comprimento for zero, ReturnLength receberá o tamanho, em bytes, do buffer necessário para armazenar as informações do nome do objeto. Um tamanho razoável para o buffer acomodar a maioria dos nomes de objeto é 1024 bytes. Se comprimento for zero, ObjectNameInfo poderá ser NULL.

[out] ReturnLength

Um ponteiro para uma variável alocada por chamador que recebe o tamanho, em bytes, das informações de nome do objeto retornado. O nome do objeto (quando presente) inclui um terminador NULL e todos os separadores de caminho "\" no nome. Se ObQueryNameString retornar STATUS_INFO_LENGTH_MISMATCH, ele definirá esse parâmetro como o comprimento do buffer necessário.

Valor de retorno

ObQueryNameString retorna STATUS_SUCCESS ou um valor NTSTATUS, como o seguinte:

Código de retorno Descrição
STATUS_INFO_LENGTH_MISMATCH
O buffer apontado pelo ObjectNameInfo é muito pequeno para conter as informações de nome do objeto solicitado. ReturnLength aponta para o tamanho do buffer necessário. Nesse caso, nenhuma informação de nome de objeto é retornada. Este é um código de erro. Lembre-se de que, se Comprimento estiver definido como zero, STATUS_INFO_LENGTH_MISMATCH será retornado.

Observações

Se o objeto fornecido for nomeado e o nome do objeto tiver sido adquirido com êxito, a cadeia de caracteres retornada será o nome do objeto fornecido, incluindo o máximo possível do caminho completo do objeto. Nesse caso, ObQueryNameString define Name.Buffer para o endereço do nome encerrado por NULL do objeto especificado. O valor de Name.MaximumLength é o comprimento do nome do objeto, incluindo a terminação NULL. O valor de Name.Length é o comprimento do único nome do objeto.

Se o objeto fornecido não for nomeado ou se o nome do objeto não tiver sido adquirido com êxito, ObQueryNameString definirá Name.Buffer como NULL e definirá Name.Length e Name.MaximumLength como zero.

O armazenamento para ObjectNameInfo pode ser alocado do pool de páginas ou nãopagados.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua FltKernel.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Consulte também

UNICODE_STRING