Funzione SetSecurityInfo (aclapi.h)
La funzione SetSecurityInfo imposta le informazioni di sicurezza specificate nel descrittore di sicurezza di un oggetto specificato. Il chiamante identifica l'oggetto da un handle.
Per impostare l'elenco SACL di un oggetto, il chiamante deve avere il privilegio SE_SECURITY_NAME abilitato.
Sintassi
DWORD SetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
Parametri
[in] handle
Handle per l'oggetto per il quale impostare le informazioni di sicurezza.
[in] ObjectType
Membro dell'enumerazione SE_OBJECT_TYPE che indica il tipo di oggetto identificato dal parametro handle .
[in] SecurityInfo
Set di flag di bit che indicano il tipo di informazioni di sicurezza da impostare. Questo parametro può essere una combinazione dei flag di bit SECURITY_INFORMATION .
[in, optional] psidOwner
Puntatore a un SID che identifica il proprietario dell'oggetto. Il SID deve essere assegnato come SID proprietario di un descrittore di sicurezza. Il parametro SecurityInfo deve includere il flag OWNER_SECURITY_INFORMATION. Questo parametro può essere NULL se non si imposta il SID proprietario.
[in, optional] psidGroup
Puntatore a un SID che identifica il gruppo primario dell'oggetto. Il parametro SecurityInfo deve includere il flag GROUP_SECURITY_INFORMATION. Questo parametro può essere NULL se non si imposta il SID del gruppo primario.
[in, optional] pDacl
Puntatore al nuovo DACL per l'oggetto . Questo parametro viene ignorato a meno che il valore del parametro SecurityInfo non includa il flag DACL_SECURITY_INFORMATION . Se il valore del parametro SecurityInfo include il flag DACL_SECURITY_INFORMATION e il valore di questo parametro è impostato su NULL, l'accesso completo all'oggetto viene concesso a tutti. Per informazioni sui DACL Null , vedere Creazione di un DACL.
[in, optional] pSacl
Puntatore al nuovo sacl per l'oggetto . Il parametro SecurityInfo deve includere uno dei flag seguenti: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION o BACKUP_SECURITY_INFORMATION. Se si imposta SACL_SECURITY_INFORMATION o SCOPE_SECURITY_INFORMATION, il chiamante deve avere il privilegio di SE_SECURITY_NAME abilitato. Questo parametro può essere NULL se non si imposta SACL.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce ERROR_SUCCESS.
Se la funzione ha esito negativo, restituisce un codice di errore diverso da zero definito in WinError.h.
Commenti
Se si imposta l'elenco di controllo di accesso discrezionale (DACL) o qualsiasi elemento nell'elenco di controllo di accesso di sistema (SACL) di un oggetto, il sistema propaga automaticamente tutte le voci di controllo di accesso ereditabili agli oggetti figlio esistenti, in base alle regole di ereditarietà ACE.
È possibile usare la funzione SetSecurityInfo con i tipi di oggetti seguenti:
- File o directory locali o remoti in un ntfs
- Named Pipes
- Stampanti locali o remote
- Servizi Windows locali o remoti
- Condivisioni di rete
- Chiavi del Registro di sistema
- Semafori, eventi, mutex e timer waitable
- Processi, thread, processi e oggetti di mapping dei file
- Stazioni finestre e desktop
- Oggetti del servizio directory
La funzione SetSecurityInfo non riordina gli ACL consentiti o negati dall'accesso in base all'ordine preferito. Quando si propagano ACL ereditabili a oggetti figlio esistenti, SetSecurityInfo inserisce gli ACL ereditati in ordine dopo tutti gli ACL nonriti negli elenchi DACL degli oggetti figlio.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | aclapi.h |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |