Condividi tramite


Funzione RtlNormalizeSecurityDescriptor (ntddk.h)

Questa routine esamina un descrittore di sicurezza per modi per modificarne il layout, con l'obiettivo che due descrittori di sicurezza equivalenti devono essere in grado di essere a istanza singola in $SDS il più spesso possibile e un obiettivo secondario che il descrittore di sicurezza archiviato deve essere il più piccolo possibile.

Sintassi

NTSYSAPI BOOLEAN RtlNormalizeSecurityDescriptor(
  PSECURITY_DESCRIPTOR *SecurityDescriptor,
  ULONG                SecurityDescriptorLength,
  PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
  PULONG               NewSecurityDescriptorLength,
  BOOLEAN              CheckOnly
);

Parametri

SecurityDescriptor

Puntatore a un puntatore al SECURITY_DESCRIPTOR da normalizzare. Il descrittore di sicurezza deve essere in formato auto-relativo. Se NewSecurityDescriptor non viene fornito, questo percorso può essere aggiornato con un descrittore di sicurezza appena allocato dal pool di paging (liberando il descrittore di sicurezza originale) se sono state apportate modifiche.

SecurityDescriptorLength

Lunghezza in byte del descrittore di sicurezza da normalizzare.

NewSecurityDescriptor

Se presente e punta a NULL, riceve un puntatore a un descrittore di sicurezza appena allocato dal pool di paging se sono state apportate modifiche, anziché aggiornare SecurityDescriptor.

Se presente e punta a un valore diverso da NULL, un descrittore di sicurezza modificato viene invece costruito direttamente nel buffer (si presuppone che sia almeno di lunghezza SecurityDescriptorLength) fornito dal chiamante.

NewSecurityDescriptorLength

Facoltativamente riceve la lunghezza in byte del descrittore di sicurezza modificato se questa routine apporta modifiche.

CheckOnly

Valore BOOLEAN che se TRUE specifica che la routine non deve eseguire alcuna azione quando le modifiche verrebbero apportate in altro modo. In questo caso, non viene creato un descrittore di sicurezza modificato.

Valore restituito

Restituisce TRUE se le modifiche sono state apportate o sarebbero state apportate e FALSE in caso contrario (incluso l'errore).

Commenti

Se questa routine apporta modifiche, restituisce il descrittore di sicurezza modificato, a meno che il chiamante non specifichi CheckOnly che indica che desiderano sapere solo se verrebbero apportate modifiche.

Le trasformazioni attualmente supportate sono:

  • Disporre le sezioni nell'ordine Sacl => Dacl => Owner => Group.

  • Elimina la spaziatura interna non necessaria (oltre l'allineamento semplice) tra le sezioni.

  • Zero byte di allineamento tra le sezioni.

  • Eliminare qualsiasi sacl che non contiene ACL.

  • Eliminare gli ACL ALLOW duplicati in Sacl e Dacl.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 2004
Intestazione ntddk.h (include Ntddk.h)
IRQL APC_LEVEL