Funzione SeSetSecurityDescriptorInfo (ntifs.h)

La routine SeSetSecurityDescriptorInfo imposta il descrittore di sicurezza di un oggetto.

Sintassi

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

Parametri

[in, optional] Object

Puntatore all'oggetto il cui descrittore di sicurezza deve essere impostato. Viene usato per aggiornare le informazioni sulla quota di sicurezza.

[in] SecurityInformation

Puntatore a una maschera di bit che specifica le informazioni di sicurezza da applicare all'oggetto. Può essere una combinazione di uno o più dei valori seguenti.

Valore Significato
DACL_SECURITY_INFORMATION Indica che è in corso l'impostazione dell'elenco DACL (Discretionary Access Control List) dell'oggetto. Richiede WRITE_DAC l'accesso.
GROUP_SECURITY_INFORMATION Indica che è in corso l'impostazione dell'identificatore di gruppo primario dell'oggetto. Richiede WRITE_OWNER l'accesso.
OWNER_SECURITY_INFORMATION Indica che è in corso l'impostazione dell'identificatore proprietario dell'oggetto. Richiede WRITE_OWNER l'accesso.
SACL_SECURITY_INFORMATION Indica che è in corso l'impostazione dell'elenco di controllo di accesso di sistema (SACL) dell'oggetto. Richiede ACCESS_SYSTEM_SECURITY l'accesso.

ModificationDescriptor

Descrittore di sicurezza di input da applicare all'oggetto . Il chiamante di questa routine deve eseguire il probe e acquisire il descrittore di sicurezza passato prima di chiamare SeSetSecurityDescriptorInfo e rilasciarlo in seguito.

[in, out] ObjectsSecurityDescriptor

Puntatore a un puntatore al descrittore di sicurezza dell'oggetto. Il descrittore di sicurezza deve essere in formato auto-relativo. Il chiamante è responsabile della liberazione di questa struttura quando non è più necessaria.

[in] PoolType

Specifica il tipo di pool da usare per l'allocazione di un nuovo descrittore di sicurezza, che può essere uno dei seguenti:

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

In genere, un chiamante specifica PagedPool oppure NonPagedPool se si accederà al buffer in IRQL >= DISPATCH_LEVEL o in un contesto di thread arbitrario.

I tipi di pool NonPagedPoolMustSucceed e NonPagedPoolCacheAlignedMustS sono obsoleti e non devono più essere usati.

[in] GenericMapping

Puntatore a una struttura GENERIC_MAPPING che specifica il mapping di tipi di accesso generici a tipi di accesso specifici e standard per l'oggetto a cui si accede. Questa struttura di mapping dovrebbe essere sicura per l'accesso , ovvero acquisito, se necessario, prima di essere passato a questa routine.

Valore restituito

Codice restituito Descrizione
STATUS_SUCCESS Il descrittore di sicurezza dell'oggetto è stato modificato correttamente.
STATUS_BAD_DESCRIPTOR_FORMAT Il descrittore di sicurezza dell'oggetto specificato non era in formato auto-relativo.
STATUS_NO_SECURITY_ON_OBJECT L'oggetto non dispone di un descrittore di sicurezza.

Commenti

SeSetSecurityDescriptorInfo modifica il descrittore di sicurezza esistente di un oggetto. Se l'oggetto non dispone di un descrittore di sicurezza, la chiamata a SeSetSecurityDescriptorInfo avrà esito negativo.

Per specificare se l'oggetto supporta l'ereditarietà automatica delle voci di controllo di accesso (ACE), usare SeSetSecurityDescriptorInfoEx.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Vedi anche

ACE

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx