Compartir a través de


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 los dos descriptores de seguridad equivalentes puedan ser instancias únicas en $SDS con la mayor frecuencia 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 para normalizar. El descriptor de seguridad debe estar en 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 no 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 de otro modo. 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).

Observaciones

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 Valor
cliente mínimo admitido Windows 10, versión 2004
encabezado de ntddk.h (incluya Ntddk.h)
irQL APC_LEVEL