WDF_FILEOBJECT_CONFIG struttura (wdfdevice.h)

[Si applica a KMDF e UMDF]

La struttura WDF_FILEOBJECT_CONFIG contiene informazioni di configurazione degli oggetti file framework di un driver.

Sintassi

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;

Members

Size

Dimensione, in byte, della struttura.

EvtDeviceFileCreate

Puntatore alla funzione evtDeviceFileCreate callback o NULL del driver.

EvtFileClose

Puntatore alla funzione di callback EvtFileClose del driver o NULL.

EvtFileCleanup

Puntatore alla funzione di callback EvtFileCleanup del driver o NULL.

AutoForwardCleanupClose

Valore WDF_TRI_STATE tipizzato. Per altre informazioni su questo membro, vedere la sezione Commenti seguente.

FileObjectClass

Valore WDF_FILEOBJECT_CLASS tipizzato che identifica se il driver richiede un oggetto file framework per rappresentare ogni file creato o aperto da un'applicazione o un altro driver. Inoltre, questo valore specifica dove il framework può archiviare l'handle dell'oggetto.

Commenti

La struttura WDF_FILEOBJECT_CONFIG viene usata come input per il metodo WdfDeviceInitSetFileObjectConfig .

WDF_FILEOBJECT_CONFIG deve essere inizializzato chiamando WDF_FILEOBJECT_CONFIG_INIT.

Comportamento del framework per AutoForwardCleanupClose

Se AutoForwardCleanupClose è impostato su WdfTrue, il framework esegue le operazioni seguenti:
  • Il framework inoltra le richieste di creazione di file al driver inferiore successivo se il driver non fornisce una funzione di callback EvtDeviceFileCreate callback e non ha chiamato WdfDeviceConfigureRequestDispatching per impostare una coda di I/O per ricevere le richieste di creazione di file. Il framework non inoltra le richieste di creazione di file se il driver fornisce una funzione di callback o una coda per gestire le richieste, pertanto il driver deve inoltrare, completare o annullare le richieste.
  • Il framework invia la pulizia dei file e chiude le richieste al driver inferiore successivo dopo aver chiamato le funzioni di callback EvtFileCleanup e EvtFileClose .
Se AutoForwardCleanupClose è impostato su WdfFalse, il framework non inoltra le richieste di creazione, pulizia o chiusura dei file. Il framework completa invece le richieste per il driver.

Se AutoForwardCleanupClose è impostato su WdfUseDefault, il framework usa il comportamento WdfTrue per i driver di filtro e il comportamento WdfFalse per i driver di funzione.

Comportamento del driver per AutoForwardCleanupClose

La destinazione di I/O locale del driver deve sempre ricevere un numero uguale di richieste di I/O con tipi di richiesta WdfRequestTypeCreate, WdfRequestTypeCleanup e WdfRequestTypeClose. Pertanto, se il driver fornisce una funzione di callback EvtDeviceFileCreate o una coda di I/O che riceve le richieste di creazione di file, è necessario usare le regole seguenti:
  • Se il driver imposta AutoForwardCleanupClose su WdfTrue, il driver deve inoltrare tutte le richieste di creazione di file alla destinazione I/O locale. È necessario seguire questa regola perché il framework inoltra tutte le richieste di pulizia e chiusura alla destinazione locale, indipendentemente dal fatto che il driver fornisca le funzioni di callback EvtFileCleanup e EvtFileClose .
  • Se il driver imposta AutoForwardCleanupClose su WdfFalse, il driver non deve inoltrare le richieste di creazione di file alla destinazione di I/O locale. È necessario seguire questa regola perché il framework non inoltra la pulizia e chiude le richieste alla destinazione locale, indipendentemente dal fatto che il driver fornisca funzioni di callback EvtFileCleanup e EvtFileClose.
  • Se il driver imposta AutoForwardCleanupClose su WdfDefault, il driver deve seguire la regola per WdfTrue se è un driver di filtro. Il driver deve seguire la regola per WdfFalse se è un driver di funzione.

Requisiti

Requisito Valore
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfdevice.h (includere Wdf.h)