WDF_FILEOBJECT_CONFIG structure (wdfdevice.h)
[S’applique à KMDF et UMDF]
La structure WDF_FILEOBJECT_CONFIG contient des informations de configuration des objets de fichier d’infrastructure d’un pilote.
Syntaxe
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;
Membres
Size
Taille, en octets, de cette structure.
EvtDeviceFileCreate
Pointeur vers la fonction de rappel EvtDeviceFileCreate du pilote, ou NULL.
EvtFileClose
Pointeur vers la fonction de rappel EvtFileClose du pilote, ou NULL.
EvtFileCleanup
Pointeur vers la fonction de rappel EvtFileCleanup du pilote, ou NULL.
AutoForwardCleanupClose
Valeur WDF_TRI_STATE typée. Pour plus d’informations sur ce membre, consultez la section Commentaires suivante.
FileObjectClass
Valeur de type WDF_FILEOBJECT_CLASS qui identifie si le pilote nécessite un objet de fichier d’infrastructure pour représenter chaque fichier créé ou ouvert par une application ou un autre pilote. En outre, cette valeur spécifie où l’infrastructure peut stocker le handle de l’objet.
Remarques
La structure WDF_FILEOBJECT_CONFIG est utilisée comme entrée de la méthode WdfDeviceInitSetFileObjectConfig .
WDF_FILEOBJECT_CONFIG doit être initialisé en appelant WDF_FILEOBJECT_CONFIG_INIT.
Comportement du framework pour AutoForwardCleanupClose
Si AutoForwardCleanupClose est défini sur WdfTrue, l’infrastructure effectue les opérations suivantes :- L’infrastructure transfère les demandes de création de fichiers au pilote suivant si le pilote ne fournit pas de fonction de rappel EvtDeviceFileCreate et n’a pas appelé WdfDeviceConfigureRequestDispatching pour définir une file d’attente d’E/S pour recevoir des demandes de création de fichiers. L’infrastructure ne transfère pas les demandes de création de fichiers si le pilote fournit une fonction de rappel ou une file d’attente pour gérer les demandes. Le pilote doit donc transférer, terminer ou annuler les demandes.
- Le framework envoie des demandes de nettoyage et de fermeture de fichier au pilote inférieur suivant après avoir appelé les fonctions de rappel EvtFileCleanup et EvtFileClose du pilote.
Si AutoForwardCleanupClose est défini sur WdfUseDefault, l’infrastructure utilise le comportement WdfTrue pour les pilotes de filtre et le comportement WdfFalse pour les pilotes de fonction.
Comportement du pilote pour AutoForwardCleanupClose
La cible d’E/S locale de votre pilote doit toujours recevoir un nombre égal de demandes d’E/S avec les types de requête WdfRequestTypeCreate, WdfRequestTypeCleanup et WdfRequestTypeClose. Par conséquent, si le pilote fournit une fonction de rappel EvtDeviceFileCreate ou une file d’attente d’E/S qui reçoit des demandes de création de fichiers, vous devez utiliser les règles suivantes :- Si votre pilote définit AutoForwardCleanupClose sur WdfTrue, le pilote doit transférer toutes les demandes de création de fichiers à la cible d’E/S locale. Vous devez suivre cette règle, car l’infrastructure transfère toutes les demandes de nettoyage et de fermeture à la cible locale, que votre pilote fournisse ou non des fonctions de rappel EvtFileCleanup et EvtFileClose .
- Si votre pilote définit AutoForwardCleanupClose sur WdfFalse, il ne doit pas transférer les demandes de création de fichiers à la cible d’E/S locale. Vous devez suivre cette règle, car l’infrastructure ne transfère pas le nettoyage et ne ferme pas les demandes à la cible locale, que votre pilote fournisse ou non des fonctions de rappel EvtFileCleanup et EvtFileClose .
- Si votre pilote définit AutoForwardCleanupClose sur WdfDefault, le pilote doit suivre la règle pour WdfTrue s’il s’agit d’un pilote de filtre. Le pilote doit suivre la règle pour WdfFalse s’il s’agit d’un pilote de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfdevice.h (inclure Wdf.h) |