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 WdfFalse, l’infrastructure ne transfère pas les demandes de création, de nettoyage ou de fermeture de fichiers. Au lieu de cela, l’infrastructure termine les demandes pour le 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)