Función SeSetSecurityDescriptorInfo (ntifs.h)

La rutina SeSetSecurityDescriptorInfo establece el descriptor de seguridad de un objeto.

Sintaxis

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

Parámetros

[in, optional] Object

Puntero al objeto cuyo descriptor de seguridad se va a establecer. Se usa para actualizar la información de cuota de seguridad.

[in] SecurityInformation

Puntero a una máscara de bits que especifica qué información de seguridad se va a aplicar al objeto . Puede ser una combinación de uno o varios de los valores siguientes.

Valor Significado
DACL_SECURITY_INFORMATION Indica que se está configurando la lista de control de acceso discrecional (DACL) del objeto. Requiere acceso WRITE_DAC.
GROUP_SECURITY_INFORMATION Indica el identificador de grupo principal del objeto que se está configurando. Requiere acceso WRITE_OWNER.
OWNER_SECURITY_INFORMATION Indica que se está configurando el identificador de propietario del objeto. Requiere acceso WRITE_OWNER.
SACL_SECURITY_INFORMATION Indica que se está configurando la ACL del sistema (SACL) del objeto. Requiere acceso ACCESS_SYSTEM_SECURITY.

ModificationDescriptor

Descriptor de seguridad de entrada que se va a aplicar al objeto . Se espera que el autor de la llamada de esta rutina sondee y capture el descriptor de seguridad pasado antes de llamar a SeSetSecurityDescriptorInfo y liberarlo después.

[in, out] ObjectsSecurityDescriptor

Puntero a un puntero al descriptor de seguridad del objeto. El descriptor de seguridad debe tener un formato auto relativo. El autor de la llamada es responsable de liberar esta estructura cuando ya no es necesario.

[in] PoolType

Especifica el tipo de grupo que se va a usar al asignar un nuevo descriptor de seguridad, que puede ser uno de los siguientes:

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

Normalmente, un llamador especifica PagedPool o NonPagedPool si se accede al búfer en IRQL >= DISPATCH_LEVEL o en un contexto de subproceso arbitrario.

Los tipos de grupo NonPagedPoolMustSucceed y NonPagedPoolCacheAlignedMustS están obsoletos y ya no deben usarse.

[in] GenericMapping

Puntero a una estructura de GENERIC_MAPPING que especifica la asignación de tipos de acceso genéricos a tipos de acceso específicos y estándar para el objeto al que se accede. Se espera que esta estructura de asignación sea segura para acceder (es decir, capturada si es necesario) antes de pasarse a esta rutina.

Valor devuelto

Código devuelto Descripción
STATUS_SUCCESS El descriptor de seguridad del objeto se modificó correctamente.
STATUS_BAD_DESCRIPTOR_FORMAT El descriptor de seguridad del objeto proporcionado no estaba en formato relativo a sí mismo.
STATUS_NO_SECURITY_ON_OBJECT El objeto no tiene un descriptor de seguridad.

Comentarios

SeSetSecurityDescriptorInfo modifica el descriptor de seguridad existente de un objeto. Si el objeto no tiene un descriptor de seguridad, se producirá un error en la llamada a SeSetSecurityDescriptorInfo .

Para especificar si el objeto admite la herencia automática de entradas de control de acceso (ACE), use SeSetSecurityDescriptorInfoEx.

Un descriptor de seguridad puede estar en forma absoluta o relativa. En forma auto-relativa, todos los miembros de la estructura se encuentran contiguamente en la memoria. En forma absoluta, la estructura solo contiene punteros a los miembros.

Para obtener más información sobre la seguridad y el control de acceso, consulte Modelo de seguridad de Windows para desarrolladores de controladores y la documentación sobre estos temas en Windows SDK.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Consulte también

AS

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx