Partager via


structure WDF_FILEOBJECT_CONFIG (wdfdevice.h)

[S’applique à KMDF et UMDF]

La structure WDF_FILEOBJECT_CONFIG contient des informations de configuration des objets de fichier framework 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 WDF_FILEOBJECT_CLASS-typée qui identifie si le pilote nécessite un objet de fichier framework pour représenter chaque fichier qu’une application ou un autre pilote crée ou ouvre. 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 dans la méthode WdfDeviceInitSetFileObjectConfig.

WDF_FILEOBJECT_CONFIG devez être initialisé en appelant WDF_FILEOBJECT_CONFIG_INIT.

Comportement de Framework pour AutoForwardCleanupClose

Si AutoForwardCleanupClose est défini sur WdfTrue, le framework effectue les opérations suivantes :
  • L’infrastructure transfère les demandes de création de fichiers au pilote inférieur suivant si le pilote ne fournit pas de EvtDeviceFileCreate fonction de rappel 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 requêtes. Par conséquent, le pilote doit transférer, terminerou annuler annuler les demandes.
  • L’infrastructure envoie le nettoyage des fichiers et ferme les requêtes au pilote inférieur suivant après avoir appelé les fonctions de rappel EvtFileCleanup et EvtFileClose.
Si AutoForwardCleanupClose a la valeur WdfFalse, l’infrastructure ne transfère pas la création, le nettoyage ou la fermeture des requêtes. Au lieu de cela, l’infrastructure termine les demandes du pilote.

Si AutoForwardCleanupClose est défini sur WdfUseDefault, l’infrastructure utilise comportement WdfTrue pour les pilotes de filtre et comportement de 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 requêtes d’E/S avec des types de requêtes de WdfRequestTypeCreate, WdfRequestTypeCleanupet WdfRequestTypeClose. Par conséquent, si le pilote fournit une EvtDeviceFileCreate fonction de rappel ou une file d’attente d’E/S qui reçoit des demandes de création de fichier, 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 evtFileCleanup et evtFileClose fonctions de rappel.
  • Si votre pilote définit AutoForwardCleanupClose sur WdfFalse, le pilote 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 n'pas transférer le nettoyage et fermer les requêtes à la cible locale, que votre pilote fournisse EvtFileCleanup et fonctions de rappel 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.

Spécifications

Besoin Valeur
version minimale de KMDF 1.0
version minimale de UMDF 2.0
En-tête wdfdevice.h (include Wdf.h)