Funzione ObQueryNameString (ntifs.h)

La routine ObQueryNameString fornisce il nome, se presente, di un determinato oggetto a cui il chiamante ha un puntatore.

Sintassi

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

Parametri

[in] Object

Puntatore all'oggetto per cui viene richiesto il nome. Questo parametro è obbligatorio e non può essere NULL.

[out, optional] ObjectNameInfo

Puntatore a un buffer allocato dal chiamante, del tipo seguente, che riceve le informazioni sul nome dell'oggetto:

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

Questo parametro è facoltativo e può essere NULL. Se ObjectNameInfo è NULL, la lunghezza deve essere zero.

[in] Length

Dimensioni, in byte, del buffer a cui fa riferimento ObjectNameInfo. Questo parametro è facoltativo e può essere zero. Se Length è zero, ReturnLength riceve le dimensioni, in byte, del buffer necessario per contenere le informazioni sul nome dell'oggetto. Una dimensione ragionevole per il buffer per ospitare la maggior parte dei nomi di oggetti è di 1024 byte. Se Length è zero, ObjectNameInfo può essere NULL.

[out] ReturnLength

Puntatore a una variabile allocata dal chiamante che riceve le dimensioni, in byte, delle informazioni sul nome dell'oggetto restituito. Il nome dell'oggetto (quando presente) include un carattere di terminazione NULL e tutti i separatori di percorso "\" nel nome. Se ObQueryNameString restituisce STATUS_INFO_LENGTH_MISMATCH, imposta questo parametro sulla lunghezza del buffer necessaria.

Valore restituito

ObQueryNameString restituisce STATUS_SUCCESS o un valore NTSTATUS, ad esempio quanto segue:

Codice restituito Descrizione
STATUS_INFO_LENGTH_MISMATCH
Il buffer a cui punta ObjectNameInfo è troppo piccolo per contenere le informazioni sul nome dell'oggetto richiesto. ReturnLength punta alla dimensione del buffer necessaria. In questo caso, non vengono restituite informazioni sul nome dell'oggetto. Si tratta di un codice di errore. Tenere presente che se Length è impostato su zero, viene restituito STATUS_INFO_LENGTH_MISMATCH.

Commenti

Se l'oggetto specificato è denominato e il nome dell'oggetto è stato acquisito correttamente, la stringa restituita è il nome dell'oggetto specificato, incluso il percorso completo dell'oggetto il più possibile. In questo caso , ObQueryNameString imposta Name.Buffer sull'indirizzo del nome con terminazione NULL dell'oggetto specificato. Il valore di Name.MaximumLength è la lunghezza del nome dell'oggetto, inclusa la terminazione NULL . Il valore name.length è lunghezza dell'unico nome dell'oggetto.

Se l'oggetto specificato è senza nome o se il nome dell'oggetto non è stato acquisito correttamente, ObQueryNameString imposta Name.Buffer su NULL e imposta Name.Length e Name.MaximumLength su zero.

L'archiviazione per ObjectNameInfo può essere allocata da un pool di pagine o non a pagine.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione ntifs.h (include FltKernel.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Vedi anche

UNICODE_STRING