Funzione SeAccessCheck (wdm.h)

SeAccessCheck determina se i diritti di accesso richiesti possono essere concessi a un oggetto protetto da un descrittore di sicurezza e da un proprietario dell'oggetto.

Sintassi

BOOLEAN SeAccessCheck(
  [in]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]  PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
  [in]  BOOLEAN                   SubjectContextLocked,
  [in]  ACCESS_MASK               DesiredAccess,
  [in]  ACCESS_MASK               PreviouslyGrantedAccess,
  [out] PPRIVILEGE_SET            *Privileges,
  [in]  PGENERIC_MAPPING          GenericMapping,
  [in]  KPROCESSOR_MODE           AccessMode,
  [out] PACCESS_MASK              GrantedAccess,
  [out] PNTSTATUS                 AccessStatus
);

Parametri

[in] SecurityDescriptor

Puntatore alla struttura SECURITY_DESCRIPTOR che descrive il descrittore di sicurezza che protegge l'oggetto a cui si accede.

[in] SubjectSecurityContext

Puntatore alla struttura SECURITY_SUBJECT_CONTEXT opaca che specifica il contesto di sicurezza acquisito dell'oggetto.

[in] SubjectContextLocked

Valore booleano che indica se il contesto del soggetto dell'utente è bloccato, in modo che non sia necessario bloccarlo di nuovo.

[in] DesiredAccess

Specifica la maschera di bit ACCESS_MASK per i diritti di accesso che il chiamante sta tentando di acquisire. Se il chiamante imposta il bit MAXIMUM_ALLOWED, la routine esegue tutti i controlli DACL. Tuttavia, SeAccessCheck non esegue controlli dei privilegi a meno che il chiamante non le richieda specificamente impostando i bit ACCESS_SYSTEM_SECURITY o WRITE_OWNER.

[in] PreviouslyGrantedAccess

Specifica il ACCESS_MASK maschera di bit dei diritti di accesso già concessi, ad esempio i diritti di accesso concessi in seguito alla conservazione di un privilegio.

[out] Privileges

Puntatore a una variabile fornita dal chiamante da impostare sull'indirizzo della struttura PRIVILEGE_SET che verrà utilizzata come parte della convalida dell'accesso oppure questo parametro può essere NULL. Il buffer restituito, se presente, deve essere rilasciato dal chiamante con SeFreePrivileges.

[in] GenericMapping

Puntatore alla struttura GENERIC_MAPPING associata a questo tipo di oggetto. Questo valore specifica i diritti di accesso specifici impliciti per ogni diritto di accesso GENERIC_XXX .

[in] AccessMode

Specifica la modalità di accesso da usare nel controllo , UserMode o KernelMode.

[out] GrantedAccess

Puntatore a una maschera di accesso restituita che indica l'accesso concesso. Se il chiamante specifica MAXIMUM_ALLOWED e il DACL in SecurityDescriptor è NULL, la routine restituisce GENERIC_ALL più qualsiasi altro accesso richiesto dal chiamante in modo esplicito.

[out] AccessStatus

Puntatore al valore di stato che indica il motivo per cui l'accesso è stato negato.

Valore restituito

Se l'accesso è consentito, SeAccessCheck restituisce TRUE.

Commenti

SeAccessCheck potrebbe eseguire test dei privilegi per SeTakeOwnershipPrivilege e SeSecurityPrivilege, a seconda degli accessi richiesti. Potrebbe eseguire test di privilegi aggiuntivi nelle versioni future del sistema operativo.

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 accessStatus restituito come valore restituito. Ovvero, il chiamante deve evitare di impostare come hardcoding un valore restituito di STATUS_ACCESS_DENIED o qualsiasi altro valore specifico STATUS_XXX .

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 nell'Microsoft Windows SDK.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

ACCESS_MASK

GENERIC_MAPPING

IoGetFileObjectGenericMapping

PRIVILEGE_SET

SE_EXPORTS

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeFreePrivileges

SeValidSecurityDescriptor