Función FltAllocateCallbackData (fltkernel.h)
FltAllocateCallbackData asigna una estructura de datos de devolución de llamada que un controlador de minifiltro puede usar para iniciar una solicitud de E/S.
Sintaxis
NTSTATUS FLTAPI FltAllocateCallbackData(
[in] PFLT_INSTANCE Instance,
[in, optional] PFILE_OBJECT FileObject,
[out] PFLT_CALLBACK_DATA *RetNewCallbackData
);
Parámetros
[in] Instance
Puntero de instancia opaco para la instancia del controlador de minifiltro que está iniciando la operación de E/S. Este parámetro es obligatorio y no puede ser NULL.
[in, optional] FileObject
Puntero de objeto de archivo que se va a usar en la operación de E/S. Este parámetro es opcional y puede ser NULL.
[out] RetNewCallbackData
Puntero a una variable asignada por el autor de la llamada que recibe la dirección de la estructura de datos de devolución de llamada (FLT_CALLBACK_DATA) recién asignada.
Valor devuelto
FltAllocateCallbackData devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:
Código devuelto | Descripción |
---|---|
|
FltAllocateCallbackData encontró un error de asignación de grupo al intentar asignar la estructura de datos de devolución de llamada. Se trata de un código de error. |
Comentarios
Un controlador de minifiltro puede llamar a FltAllocateCallbackData para asignar una estructura de datos de devolución de llamada (FLT_CALLBACK_DATA) para una operación de E/S iniciada por el controlador minifiltro.
Después de inicializar los parámetros de la estructura de datos de devolución de llamada devuelta por FltAllocateCallbackData, el llamador inicia la operación de E/S pasando la estructura a FltPerformSynchronousIo o FltPerformAsynchronousIo. Estas rutinas envían la operación de E/S solo a las instancias del controlador de minifiltro adjuntas debajo de la instancia de inicio (especificada en el parámetro Instance ) y al sistema de archivos. Los controladores de minifiltro conectados encima de la instancia especificada no reciben la operación de E/S.
Los controladores de minifiltro solo pueden iniciar operaciones de E/S basadas en IRP. No pueden iniciar operaciones de devolución de llamada de E/S rápidas o de filtro del sistema de archivos (FSFilter).
Los controladores de minifiltro deben usar FltAllocateCallbackData, FltPerformAsynchronousIo y FltPerformSynchronousIo solo para las operaciones de E/S para las que no se pueden usar rutinas como las siguientes:
Cuando ya no se necesita la estructura de datos de devolución de llamada asignada por FltAllocateCallbackData , el autor de la llamada es responsable de liberarla llamando a FltFreeCallbackData.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |