estructura de WDF_FILEOBJECT_CONFIG (wdfdevice.h)
[Se aplica a KMDF y UMDF]
La estructura WDF_FILEOBJECT_CONFIG contiene información de configuración de los objetos de archivo de marco de un controlador.
Sintaxis
typedef struct _WDF_FILEOBJECT_CONFIG {
ULONG Size;
PFN_WDF_DEVICE_FILE_CREATE EvtDeviceFileCreate;
PFN_WDF_FILE_CLOSE EvtFileClose;
PFN_WDF_FILE_CLEANUP EvtFileCleanup;
WDF_TRI_STATE AutoForwardCleanupClose;
WDF_FILEOBJECT_CLASS FileObjectClass;
} WDF_FILEOBJECT_CONFIG, *PWDF_FILEOBJECT_CONFIG;
Miembros
Size
Tamaño, en bytes, de esta estructura.
EvtDeviceFileCreate
Puntero a la función de devolución de llamada EvtDeviceFileCreate del controlador o NULL.
EvtFileClose
Puntero a la función de devolución de llamada EvtFileClose del controlador o NULL.
EvtFileCleanup
Puntero a la función de devolución de llamada EvtFileCleanup del controlador o NULL.
AutoForwardCleanupClose
Valor con tipo WDF_TRI_STATE. Para obtener más información sobre este miembro, vea la siguiente sección Comentarios.
FileObjectClass
Valor WDF_FILEOBJECT_CLASS tipo que identifica si el controlador requiere un objeto de archivo de marco para representar cada archivo que crea o abre una aplicación u otro controlador. Además, este valor especifica dónde puede almacenar el controlador del objeto.
Comentarios
La estructura WDF_FILEOBJECT_CONFIG se usa como entrada para el método WdfDeviceInitSetFileObjectConfig .
WDF_FILEOBJECT_CONFIG se debe inicializar llamando a WDF_FILEOBJECT_CONFIG_INIT.
Comportamiento del marco para AutoForwardCleanupClose
Si AutoForwardCleanupClose está establecido en WdfTrue, el marco hace lo siguiente:- El marco reenvía las solicitudes de creación de archivos al controlador siguiente inferior si el controlador no proporciona una función de devolución de llamada EvtDeviceFileCreate y no ha llamado a WdfDeviceConfigureRequestDispatching para establecer una cola de E/S para recibir solicitudes de creación de archivos. El marco de trabajo no reenvía solicitudes de creación de archivos si el controlador proporciona una función de devolución de llamada o una cola para controlar las solicitudes, por lo que el controlador debe reenviar, completar o cancelar las solicitudes.
- El marco envía solicitudes de limpieza y cierre de archivos al controlador inferior siguiente después de llamar a las funciones de devolución de llamada EvtFileCleanup y EvtFileClose del controlador.
Si AutoForwardCleanupClose se establece en WdfUseDefault, el marco usa el comportamiento de WdfTrue para los controladores de filtro y el comportamiento de WdfFalse para los controladores de función.
Comportamiento del controlador para AutoForwardCleanupClose
El destino de E/S local del controlador siempre debe recibir un número igual de solicitudes de E/S con tipos de solicitud de WdfRequestTypeCreate, WdfRequestTypeCleanup y WdfRequestTypeClose. Por lo tanto, si el controlador proporciona una función de devolución de llamada EvtDeviceFileCreate o una cola de E/S que recibe solicitudes de creación de archivos, debe usar las reglas siguientes:- Si el controlador establece AutoForwardCleanupClose en WdfTrue, el controlador debe reenviar todas las solicitudes de creación de archivos al destino de E/S local. Debe seguir esta regla porque el marco reenviará todas las solicitudes de limpieza y cierre al destino local, independientemente de si el controlador proporciona o no funciones de devolución de llamada EvtFileCleanup y EvtFileClose .
- Si el controlador establece AutoForwardCleanupClose en WdfFalse, el controlador no debe reenviar solicitudes de creación de archivos al destino de E/S local. Debe seguir esta regla porque el marco no reenviará las solicitudes de limpieza y cierre al destino local, independientemente de si el controlador proporciona o no funciones de devolución de llamada EvtFileCleanup y EvtFileClose .
- Si el controlador establece AutoForwardCleanupClose en WdfDefault, el controlador debe seguir la regla de WdfTrue si es un controlador de filtro. El controlador debe seguir la regla de WdfFalse si es un controlador de función.
Requisitos
Requisito | Value |
---|---|
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfdevice.h (incluya Wdf.h) |