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