Función FltQuerySecurityObject (fltkernel.h)

FltQuerySecurityObject recupera una copia del descriptor de seguridad de un objeto.

Sintaxis

NTSTATUS FLTAPI FltQuerySecurityObject(
  [in]            PFLT_INSTANCE        Instance,
  [in]            PFILE_OBJECT         FileObject,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [in, out]       PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]            ULONG                Length,
  [out, optional] PULONG               LengthNeeded
);

Parámetros

[in] Instance

Puntero de instancia opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.

[in] FileObject

Puntero de objeto de archivo para el objeto cuyo descriptor de seguridad se está consultando. Este parámetro es obligatorio y no puede ser NULL.

[in] SecurityInformation

SECURITY_INFORMATION valor. Este parámetro es necesario y debe ser uno de los siguientes:

Valor securityInformation 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 .
DACL_SECURITY_INFORMATION Se consulta la lista de control de acceso discrecional (DACL) del objeto. Requiere acceso READ_CONTROL .
SACL_SECURITY_INFORMATION Se está consultando la ACL del sistema (SACL) del objeto. Requiere acceso ACCESS_SYSTEM_SECURITY .

[in, out] SecurityDescriptor

Puntero a un búfer de salida proporcionado por el autor de la llamada que recibe una copia del descriptor de seguridad para el objeto especificado. La estructura de SECURITY_DESCRIPTOR se devuelve en formato relativo propio. Este parámetro es opcional y puede ser NULL.

[in] Length

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

[out, optional] 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 devuelto en el búfer al que apunta el parámetro SecurityDescriptor . Este parámetro es opcional y puede ser NULL.

Valor devuelto

FltQuerySecurityObject devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_ACCESS_DENIED
El autor de la llamada no tenía el acceso necesario. Se trata de un código de error.
STATUS_BUFFER_TOO_SMALL
El búfer es demasiado pequeño para contener el descriptor de seguridad. Ninguna de las informaciones de seguridad se copió en el búfer. Se trata de un código de error.

Comentarios

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 sus miembros.

El sistema de archivos NTFS impone un límite de 64 KB 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 de 64 KB al que apunta el parámetro SecurityDescriptor sea lo suficientemente grande como para contener la estructura de SECURITY_DESCRIPTOR devuelta.

Objeto al que apunta el parámetro FileObject puede representar un flujo de datos con nombre. Para obtener más información sobre los flujos de datos con nombre, consulte FILE_STREAM_INFORMATION.

Para obtener más información sobre la seguridad y el control de acceso, consulte la documentación de Microsoft Windows SDK.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
Archivo DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Consulte también

FILE_STREAM_INFORMATION

SECURITY_DESCRIPTOR

SECURITY_INFORMATION