Compartir a través de


Función ZwQuerySecurityObject (ntifs.h)

El ZwQuerySecurityObject rutina recupera una copia del descriptor de seguridad de un objeto.

Sintaxis

NTSYSAPI NTSTATUS ZwQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

Parámetros

[in] Handle

Identificador del objeto cuyo descriptor de seguridad se va a consultar. 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_INFORMATION que especifica la información que se va a consultar como una combinación de uno o varios de los siguientes.

Valor Significado
OWNER_SECURITY_INFORMATION Se está consultando el identificador de propietario del objeto. Requiere acceso READ_CONTROL.
GROUP_SECURITY_INFORMATION Se está consultando el identificador del grupo principal del objeto. Requiere acceso READ_CONTROL.
SACL_SECURITY_INFORMATION Se está consultando la ACL del sistema (SACL) del objeto. Requiere acceso ACCESS_SYSTEM_SECURITY.
DACL_SECURITY_INFORMATION Se está consultando la lista de control de acceso discrecional (DACL) del objeto. Requiere acceso READ_CONTROL.

[out] SecurityDescriptor

Búfer asignado por el autor de la llamada que ZwQuerySecurityObject rellena con una copia del descriptor de seguridad especificado. La estructura SECURITY_DESCRIPTOR se devuelve en formato auto relativo.

[in] Length

Tamaño, en bytes, del búfer al que apunta SecurityDescriptor.

[out] LengthNeeded

Puntero a una variable asignada por el autor de la llamada que recibe el número de bytes necesarios para almacenar el descriptor de seguridad copiado.

Valor devuelto

ZwQuerySecurityObject 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 tenía el acceso necesario.
STATUS_BUFFER_TOO_SMALL El búfer es demasiado pequeño para el descriptor de seguridad. Ninguna de las informaciones de seguridad se copió en el búfer.
STATUS_INVALID_HANDLE handle no era un identificador válido.
STATUS_OBJECT_TYPE_MISMATCH handle no era un identificador del tipo esperado.

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.

El sistema de archivos NTFS impone un límite de 64K sobre el tamaño del descriptor de seguridad que se escribe en el disco para un archivo. (El sistema de archivos FAT no admite descriptores de seguridad para archivos). Por lo tanto, se garantiza que un búfer SecurityDescriptor de 64K sea lo suficientemente grande como para contener la estructura de SECURITY_DESCRIPTOR devuelta.

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 llamar a FltQuerySecurityObject en lugar de ZwQuerySecurityObject.

Nota

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

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
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwSetSecurityObject