Función RtlNormalizeSecurityDescriptor (ntddk.h)

Esta rutina examina un descriptor de seguridad para ver las formas de modificar su diseño, con el objetivo de que dos descriptores de seguridad equivalentes puedan ser instancias únicas en $SDS lo más a menudo posible, y un objetivo secundario que el descriptor de seguridad almacenado debe ser lo más pequeño posible.

Sintaxis

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

Parámetros

SecurityDescriptor

Puntero a un puntero al SECURITY_DESCRIPTOR que se va a normalizar. El descriptor de seguridad debe tener un formato auto relativo. Si no se proporciona NewSecurityDescriptor , esta ubicación se puede actualizar con un descriptor de seguridad recién asignado del grupo paginado (liberando el descriptor de seguridad original) si se realizaron modificaciones.

SecurityDescriptorLength

Longitud en bytes del descriptor de seguridad que se va a normalizar.

NewSecurityDescriptor

Si está presente y apunta a NULL, recibe un puntero a un descriptor de seguridad recién asignado del grupo paginado si se realizaron modificaciones, en lugar de actualizar SecurityDescriptor.

Si está presente y apunta a un valor distinto de NULL, un descriptor de seguridad modificado se construye directamente en el búfer (se supone que es al menos de longitud SecurityDescriptorLength) proporcionado por el autor de la llamada.

NewSecurityDescriptorLength

Opcionalmente, recibe la longitud en bytes del descriptor de seguridad modificado si esta rutina realiza modificaciones.

CheckOnly

Valor BOOLEAN que si TRUE especifica que la rutina no debe realizar ninguna acción cuando se realicen modificaciones. En este caso, no se crea un descriptor de seguridad modificado.

Valor devuelto

Devuelve TRUE si se realizaron modificaciones o se habrían realizado y FALSE de lo contrario (incluido el error).

Comentarios

Si esta rutina realiza modificaciones, devuelve el descriptor de seguridad modificado a menos que el autor de la llamada especifique CheckOnly que indica que solo quieren saber si se realizarían modificaciones.

Las transformaciones admitidas actualmente son:

  • Organice las secciones en el orden Sacl => Dacl => Owner => Group.

  • Elimine el relleno innecesario (más allá de la alineación simple) entre secciones.

  • Cero bytes de alineación entre secciones.

  • Elimine cualquier Sacl que no contenga ACE.

  • Elimine las ACE ALLOW duplicadas en Sacl y Dacl.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 2004
Encabezado ntddk.h (incluya Ntddk.h)
IRQL APC_LEVEL