Función NtQuerySecurityObject (ntifs.h)

La rutina NtQuerySecurityObject recupera una copia del descriptor de seguridad de un objeto.

Sintaxis

__kernel_entry NTSYSCALLAPI NTSTATUS NtQuerySecurityObject(
  [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 de grupo principal del objeto. Requiere acceso READ_CONTROL.
SACL_SECURITY_INFORMATION Se está consultando la ACL (SACL) del sistema 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 NtQuerySecurityObject rellena con una copia del descriptor de seguridad especificado. La estructura de SECURITY_DESCRIPTOR se devuelve en formato relativo propio.

[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

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

Código devuelto Descripción
STATUS_ACCESS_DENIED El identificador 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 El identificador no era un identificador válido.
STATUS_OBJECT_TYPE_MISMATCH El identificador no era un identificador del tipo esperado.

Comentarios

Los minifiltros deben llamar a FltQuerySecurityObject.

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, consulte Descriptores de seguridad absolutos y Self-Relative.

El sistema de archivos NTFS impone un límite de 64K en 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 es 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.

Nota

Si la llamada a la función NtQuerySecurityObject 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 versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar 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 NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte también

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

NtSetSecurityObject