Funzione ZwQuerySecurityObject (ntifs.h)
La routine ZwQuerySecurityObject recupera una copia del descrittore di sicurezza di un oggetto.
Sintassi
NTSYSAPI NTSTATUS ZwQuerySecurityObject(
[in] HANDLE Handle,
[in] SECURITY_INFORMATION SecurityInformation,
[out] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] ULONG Length,
[out] PULONG LengthNeeded
);
Parametri
[in] Handle
Handle per l'oggetto il cui descrittore di sicurezza deve essere sottoposto a query. Questo handle deve avere l'accesso specificato nella colonna Significato della tabella illustrata nella descrizione del parametro SecurityInformation.
[in] SecurityInformation
Valore SECURITY_INFORMATION che specifica le informazioni su cui eseguire una query come combinazione di una o più delle opzioni seguenti.
Valore | Significato |
---|---|
OWNER_SECURITY_INFORMATION | Viene eseguita una query sull'identificatore del proprietario dell'oggetto. Richiede l'accesso READ_CONTROL. |
GROUP_SECURITY_INFORMATION | Viene eseguita una query sull'identificatore del gruppo primario dell'oggetto. Richiede l'accesso READ_CONTROL. |
SACL_SECURITY_INFORMATION | Viene eseguita una query sull'ACL di sistema (SACL) dell'oggetto. Richiede l'accesso ACCESS_SYSTEM_SECURITY. |
DACL_SECURITY_INFORMATION | Viene eseguita una query sull'elenco di controllo di accesso discrezionale (DACL) dell'oggetto. Richiede l'accesso READ_CONTROL. |
[out] SecurityDescriptor
Buffer allocato dal chiamante che ZwQuerySecurityObject riempie con una copia del descrittore di sicurezza specificato. La struttura SECURITY_DESCRIPTOR viene restituita in formato auto-relativo.
[in] Length
Dimensioni, in byte, del buffer a cui punta SecurityDescriptor.
[out] LengthNeeded
Puntatore a una variabile allocata dal chiamante che riceve il numero di byte necessari per archiviare il descrittore di sicurezza copiato.
Valore restituito
ZwQuerySecurityObject restituisce STATUS_SUCCESS o uno stato di errore appropriato. I codici di stato di errore possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_ACCESS_DENIED | Handle non dispone dell'accesso necessario. |
STATUS_BUFFER_TOO_SMALL | Il buffer è troppo piccolo per il descrittore di sicurezza. Nessuna delle informazioni di sicurezza è stata copiata nel buffer. |
STATUS_INVALID_HANDLE | handle non è un handle valido. |
STATUS_OBJECT_TYPE_MISMATCH | handle non era un handle del tipo previsto. |
Osservazioni
Un descrittore di sicurezza può essere in forma assoluta o auto-relativa. In forma auto-relativa, tutti i membri della struttura si trovano contiguamente in memoria. In forma assoluta, la struttura contiene solo puntatori ai membri. Per altre informazioni, vedere descrittori di sicurezza assoluti e Self-Relative.
Il file system NTFS impone un limite di 64 KB alle dimensioni del descrittore di sicurezza scritto su disco per un file. Il file system FAT non supporta i descrittori di sicurezza per i file. Pertanto, un buffer securityDescriptor di 64K
Per altre informazioni sulla sicurezza e sul controllo di accesso, vedere modello di sicurezza di Windows per sviluppatori di driver e la documentazione su questi argomenti in Windows SDK.
I minifiltri devono chiamare FltQuerySecurityObject anziché ZwQuerySecurityObject.
Nota
Se la chiamata alla funzione ZwQuerySecurityObject viene eseguita in modalità utente, è necessario usare il nome "NtQuerySecurityObject" anziché "ZwQuerySecurityObject".
Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP |
piattaforma di destinazione | Universale |
intestazione |
ntifs.h (include Ntifs.h) |
libreria |
NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regole di conformità DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |