Compartir a través de


Función ZwSetSecurityObject (ntifs.h)

La rutina ZwSetSecurityObject establece el estado de seguridad de un objeto.

Sintaxis

NTSYSAPI NTSTATUS ZwSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

Parámetros

[in] Handle

Identificador del objeto cuyo estado de seguridad se va a establecer. Este identificador debe tener el acceso especificado en la columna Significado de la tabla que se muestra en la descripción del parámetro SecurityInformation.

[in] SecurityInformation

Valor de SECURITY_INFORMATIONque especifica la información que se va a establecer. Puede ser una combinación de uno o varios de los valores siguientes.

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

[in] SecurityDescriptor

Puntero al descriptor de seguridad que se va a establecer para el objeto .

Valor devuelto

ZwSetSecurityObject devuelve STATUS_SUCCESS o un estado de error adecuado. Entre los códigos de estado de error posibles se incluyen los siguientes:

Código devuelto Descripción
STATUS_ACCESS_DENIED Handle no tiene los derechos de acceso necesarios.
STATUS_ACCESS_VIOLATION SecurityDescriptor es un puntero de NULL.
STATUS_INSUFFICIENT_RESOURCES No se pudo capturar el descriptor de seguridad del objeto.
STATUS_INVALID_ACL El descriptor de seguridad del objeto contiene una ACL no válida.
STATUS_INVALID_HANDLE handle no es un identificador válido.
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor no apunta a un descriptor de seguridad válido.
STATUS_INVALID_SID El descriptor de seguridad del objeto contiene un SID de no válido.
STATUS_OBJECT_TYPE_MISMATCH handle no es un identificador del tipo esperado.
STATUS_UNKNOWN_REVISION El nivel de revisión del descriptor de seguridad del objeto es desconocido o no se admite.

Observaciones

Un descriptor de seguridad puede estar en forma absoluta o auto 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, vea "Absolute and Self-Relative Security Descriptors" (Descriptores de seguridad absolutos y Self-Relative) en la sección Seguridad de la documentación de Windows SDK.

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.

Los minifiltros deben usar FltSetSecurityObject en lugar de ZwSetSecurityObject.

Los autores de llamadas de ZwSetSecurityObject deben ejecutarse en IRQL = PASSIVE_LEVEL y con API de kernel especiales habilitadas.

Nota

Si la llamada a la función ZwSetSecurityObject se produce en modo de usuario, debe usar el nombre "NtSetSecurityObject" en lugar de "ZwSetSecurityObject".

En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL (consulte la sección Comentarios)
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

fltSetSecurityObject de

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

usar versiones Nt y Zw de las rutinas de servicios del sistema nativo

ZwQuerySecurityObject