Función NtSetSecurityObject (ntifs.h)
La rutina NtSetSecurityObject establece el estado de seguridad de un objeto.
Sintaxis
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetSecurityObject(
[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
SECURITY_INFORMATION valor que especifica la información que se va a establecer como una combinación de una o varias de las siguientes opciones.
Valor | Significado |
---|---|
OWNER_SECURITY_INFORMATION | Indica que se va a establecer el identificador de propietario del objeto. Requiere acceso WRITE_OWNER. |
GROUP_SECURITY_INFORMATION | Indica que se va a establecer el identificador de grupo principal 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. |
DACL_SECURITY_INFORMATION | Indica que se va a establecer la lista de control de acceso discrecional (DACL) del objeto. Requiere acceso WRITE_DAC. |
[in] SecurityDescriptor
Puntero al descriptor de seguridad que se va a establecer para el objeto .
Valor devuelto
NtSetSecurityObject 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 | El autor de la llamada no tenía el acceso necesario. |
STATUS_ACCESS_VIOLATION | |
STATUS_INSUFFICIENT_RESOURCES | No se pudo capturar el descriptor de seguridad del objeto. |
STATUS_INVALID_ACL | El descriptor de seguridad del objeto contenía una ACL no válida. |
STATUS_INVALID_HANDLE | handle no es un identificador válido. |
STATUS_INVALID_SECURITY_DESCR | SecurityDescriptor no apuntaron a un descriptor de seguridad válido. |
STATUS_INVALID_SID | El descriptor de seguridad del objeto contenía un SID no válido. |
STATUS_OBJECT_TYPE_MISMATCH | handle no es un identificador del tipo esperado. |
STATUS_UNKNOWN_REVISION | Se desconoce o no se admite el nivel de revisión del descriptor de seguridad del objeto. |
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 Descriptores de seguridad absolutos y Self-Relative.
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 NtSetSecurityObject.
Los autores de llamadas de NtSetSecurityObject deben ejecutarse en IRQL = PASSIVE_LEVEL y con API de kernel especiales habilitadas.
Nota
Si la llamada a la función NtSetSecurityObject 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, PowerIrpDDis |
Consulte también
fltSetSecurityObject de
usar versiones Nt y Zw de las rutinas de servicios del sistema nativo
NtQuerySecurityObject de