Funzione MakeAbsoluteSD (securitybaseapi.h)
La funzione MakeAbsoluteSD crea un descrittore di sicurezza in formato assoluto usando un descrittore di sicurezza in formato auto-relativo come modello.
Sintassi
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
Parametri
[in] pSelfRelativeSecurityDescriptor
Puntatore a una struttura SECURITY_DESCRIPTOR in formato auto-relativo. La funzione crea una versione in formato assoluto di questo descrittore di sicurezza senza modificare il descrittore di sicurezza originale.
[out, optional] pAbsoluteSecurityDescriptor
Puntatore a un buffer che la funzione riempie con il corpo principale di un descrittore di sicurezza in formato assoluto. Queste informazioni vengono formattate come struttura SECURITY_DESCRIPTOR .
[in, out] lpdwAbsoluteSecurityDescriptorSize
Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro pAbsoluteSD . Se il buffer non è sufficiente per il descrittore di sicurezza, la funzione ha esito negativo e imposta questa variabile sulla dimensione minima richiesta.
[out, optional] pDacl
Puntatore a un buffer che la funzione riempie con l'elenco di controllo di accesso discrezionale (DACL) del descrittore di sicurezza in formato assoluto. Il corpo principale del descrittore di sicurezza di formato assoluto fa riferimento a questo puntatore.
[in, out] lpdwDaclSize
Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro pDacl . Se il buffer non è abbastanza grande per l'elenco di controllo di accesso (ACL), la funzione ha esito negativo e imposta questa variabile sulla dimensione minima richiesta.
[out, optional] pSacl
Puntatore a un buffer che la funzione riempie con l'elenco di controllo di accesso del sistema (SACL) del descrittore di sicurezza in formato assoluto. Il corpo principale del descrittore di sicurezza di formato assoluto fa riferimento a questo puntatore.
[in, out] lpdwSaclSize
Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro pSacl . Se il buffer non è sufficiente per l'ACL, la funzione ha esito negativo e imposta questa variabile sulla dimensione minima richiesta.
[out, optional] pOwner
Puntatore a un buffer che riempie la funzione con l'identificatore di sicurezza (SID) del proprietario del descrittore di sicurezza in formato assoluto. Il corpo principale del descrittore di sicurezza di formato assoluto fa riferimento a questo puntatore.
[in, out] lpdwOwnerSize
Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro pOwner . Se il buffer non è sufficiente per il SID, la funzione ha esito negativo e imposta questa variabile sulla dimensione minima richiesta.
[out, optional] pPrimaryGroup
Puntatore a un buffer che riempie la funzione con il SID del descrittore di sicurezza assoluto del gruppo primario. Il corpo principale del descrittore di sicurezza di formato assoluto fa riferimento a questo puntatore.
[in, out] lpdwPrimaryGroupSize
Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro pPrimaryGroup . Se il buffer non è sufficiente per il SID, la funzione ha esito negativo e imposta questa variabile sulla dimensione minima richiesta.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.
Se la funzione ha esito negativo, restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError. I codici restituiti possibili includono, ma non sono limitati a, i seguenti.
Codice/valore restituito | Descrizione |
---|---|
|
Uno o più buffer è troppo piccolo. |
Commenti
Un descrittore di sicurezza in formato assoluto contiene puntatori alle informazioni contenute, anziché le informazioni stesse. Un descrittore di sicurezza in formato auto-relativo contiene le informazioni in un blocco contiguo di memoria. In un descrittore di sicurezza self-relativo, una struttura SECURITY_DESCRIPTOR avvia sempre le informazioni, ma gli altri componenti della sicurezza possono seguire la struttura in qualsiasi ordine. Anziché usare gli indirizzi di memoria, i componenti del descrittore di sicurezza self-relative vengono identificati da offset dall'inizio del descrittore di sicurezza. Questo formato è utile quando un descrittore di sicurezza deve essere archiviato in un disco floppy o trasmesso tramite un protocollo di comunicazione.
Un server che copia oggetti protetti in vari supporti può usare la funzione MakeAbsoluteSD per creare un descrittore di sicurezza assoluto da un descrittore di sicurezza self-relativo e la funzione MakeSelfRelativeSD per creare un descrittore di sicurezza self-relativo da un descrittore di sicurezza assoluto.
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 | securitybaseapi.h (include Windows.h) |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |
Vedi anche
Controllo di accesso di basso livello