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, Length deverá ser zero.
[in] Length
O tamanho, em bytes, do buffer apontado por ObjectNameInfo. Esse parâmetro é opcional e pode ser zero. Se Length for zero, ReturnLength receberá o tamanho, em bytes, do buffer necessário para manter as informações de nome do objeto. Um tamanho razoável para o buffer acomodar a maioria dos nomes de objeto é de 1024 bytes. Se Length for zero, ObjectNameInfo poderá ser NULL.
[out] ReturnLength
Um ponteiro para uma variável alocada pelo chamador que recebe o tamanho, em bytes, das informações de nome de objeto retornadas. 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.
Retornar valor
ObQueryNameString retorna STATUS_SUCCESS ou um valor NTSTATUS, como o seguinte:
Código de retorno | Descrição |
---|---|
|
O buffer apontado por ObjectNameInfo é muito pequeno para conter as informações de nome de objeto solicitadas. 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 Length estiver definido como zero, STATUS_INFO_LENGTH_MISMATCH será retornado. |
Comentários
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 como o endereço do nome terminado em 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 paginado ou nãopagado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua FltKernel.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |