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