Funzione SeAccessCheckFromState (ntifs.h)
SeAccessCheckFromState controlla se i diritti di accesso richiesti possono essere concessi a un oggetto protetto da un descrittore di sicurezza e da un proprietario di oggetto facoltativo.
Sintassi
BOOLEAN SeAccessCheckFromState(
PSECURITY_DESCRIPTOR SecurityDescriptor,
PTOKEN_ACCESS_INFORMATION PrimaryTokenInformation,
PTOKEN_ACCESS_INFORMATION ClientTokenInformation,
ACCESS_MASK DesiredAccess,
ACCESS_MASK PreviouslyGrantedAccess,
PPRIVILEGE_SET *Privileges,
PGENERIC_MAPPING GenericMapping,
KPROCESSOR_MODE AccessMode,
PACCESS_MASK GrantedAccess,
PNTSTATUS AccessStatus
);
Parametri
SecurityDescriptor
[in] Puntatore a una struttura SECURITY_DESCRIPTOR contenente le informazioni di sicurezza che proteggono l'oggetto a cui si accede.
PrimaryTokenInformation
[in] Puntatore alla struttura TOKEN_ACCESS_INFORMATION acquisita dal token primario. Questa struttura fornisce le informazioni del token necessarie per eseguire un controllo di accesso.
ClientTokenInformation
[in_opt] Puntatore facoltativo alla struttura TOKEN_ACCESS_INFORMATION acquisita dal token client.
DesiredAccess
[in] Valore ACCESS_MASK che specifica i diritti di accesso desiderati da controllare.
PreviouslyGrantedAccess
[in] Valore ACCESS_MASK che specifica gli accessi già concessi dall'utente; ad esempio, come risultato della conservazione di un privilegio.
Privileges
[out] Puntatore a una struttura PRIVILEGE_SET in cui viene restituito un set di privilegi per indicare tutti i privilegi usati come parte della convalida dell'accesso.
GenericMapping
[in] Puntatore alla struttura GENERIC_MAPPING associata a questo tipo di oggetto.
AccessMode
[in] Valore KPROCESSOR_MODE che specifica la modalità processore da utilizzare nel controllo. AccessMode può essere KernelMode o UserMode. I driver di livello inferiore devono specificare KernelMode.
GrantedAccess
[out] Puntatore a un valore ACCESS_MASK restituito che indica l'accesso concesso.
AccessStatus
[out] Puntatore a un valore di stato NT che può essere restituito per indicare il motivo per cui l'accesso è stato negato. Vedere la sezione Osservazioni.
Valore restituito
SeAccessCheckFromState restituisce TRUE se l'accesso è consentito; restituisce FALSE se l'accesso non è consentito.
Osservazioni
SeAccessCheckFromState potrebbe eseguire test per i privilegi seguenti, a seconda degli accessi richiesti:
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
Questa routine può anche verificare se il chiamante è il proprietario dell'oggetto per concedere WRITE_DAC o READ_CONTROL l'accesso.
Se questa routine restituisce FALSE, il chiamante deve utilizzare il AccessStatus restituito come valore restituito. Ciò significa che il chiamante deve evitare di impostare come hardcoding un valore restituito di STATUS_ACCESS_DENIED o qualsiasi altro valore specifico STATUS_XXX.
Questa routine potrebbe essere chiamata dal livello DPC, pertanto non deve essere visualizzabile.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 |
intestazione | ntifs.h (include ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |