IRP_MJ_QUERY_SECURITY (controladores de filtro y FS)

Cuándo se envió

El Administrador de E/S envía la solicitud de IRP_MJ_QUERY_SECURITY. Se puede enviar, por ejemplo, cuando una aplicación en modo de usuario ha llamado a una función Win32 como GetSecurityInfo.

Operación: controladores del sistema de archivos

El controlador del sistema de archivos debe extraer y descodificar el objeto de archivo para determinar si representa un archivo de usuario o un directorio abiertos. Si es así, el controlador debe procesar la consulta y completar el IRP. De lo contrario, el controlador debe completar el IRP según corresponda sin procesar la consulta.

Operación: controladores de filtro del sistema de archivos heredados

El controlador de filtro debe pasar este IRP al siguiente controlador inferior de la pila.

Parámetros

Un controlador de filtro o sistema de archivos llama a IoGetCurrentIrpStackLocation para que el IRP especificado obtenga un puntero a su propia ubicación de pila en el IRP. En los parámetros siguientes, Irp apunta a IRP e IrpSp apunta al IO_STACK_LOCATION. El controlador puede usar la información que se establece en los siguientes miembros del IRP y la ubicación de pila de IRP para procesar una solicitud de seguridad de consulta:

  • DeviceObject es un puntero al objeto de dispositivo de destino.

  • Irp->IoStatus apunta a una estructura de IO_STATUS_BLOCK que recibe el estado de finalización final e información sobre la operación solicitada.

  • Irp->UserBuffer apunta a un búfer de salida proporcionado por el autor de la llamada que recibe una copia del descriptor de seguridad del objeto especificado. El proceso de llamada debe tener derecho a ver los aspectos especificados del estado de seguridad del objeto. La estructura SECURITY_DESCRIPTOR se devuelve en formato auto relativo.

  • IrpSp->FileObject apunta al objeto de archivo asociado a DeviceObject.

    En Windows XP y versiones posteriores, el objeto de archivo 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.

    El parámetro IrpSp-FileObject> contiene un puntero al campo RelatedFileObject, que también es una estructura FILE_OBJECT. El campo RelatedFileObject de la estructura FILE_OBJECT no es válido durante el procesamiento de IRP_MJ_QUERY_SECURITY y no se debe usar.

  • IrpSp->MajorFunction se establece en IRP_MJ_QUERY_SECURITY.

  • IrpSp->Parameters.QuerySecurity.Length es el tamaño, en bytes, del búfer al que apunta el parámetro Irp-UserBuffer>.

  • IrpSp->Parameters.QuerySecurity.SecurityInformation apunta a la estructura SECURITY_INFORMATION de la operación. Este valor puede ser una combinación válida de los bits siguientes.

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

Consulte también

FILE_STREAM_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_SET_SECURITY

SECURITY_DESCRIPTOR

SECURITY_INFORMATION