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 |
---|---|
|
El autor de la llamada no tenía el acceso necesario. Se trata de un código de error. |
|
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 |