Поделиться через


структура WDF_FILEOBJECT_CONFIG (wdfdevice.h)

[Применимо к KMDF и UMDF]

Структура WDF_FILEOBJECT_CONFIG содержит сведения о конфигурации объектов файлов платформы драйвера.

Синтаксис

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;

Члены

Size

Размер данной структуры (в байтах).

EvtDeviceFileCreate

Указатель на функцию обратного вызова EvtDeviceFileCreate драйвера или NULL.

EvtFileClose

Указатель на функцию обратного вызова EvtFileClose драйвера или NULL.

EvtFileCleanup

Указатель на функцию обратного вызова EvtFileCleanup драйвера или NULL.

AutoForwardCleanupClose

WDF_TRI_STATE типизированное значение. Дополнительные сведения об этом участнике см. в следующем разделе Комментарии.

FileObjectClass

Значение типа WDF_FILEOBJECT_CLASS, указывающее, требуется ли драйверу объект файла платформы для представления каждого файла, создаваемого приложением или другим драйвером. Кроме того, это значение указывает, где платформа может хранить дескриптор объекта.

Комментарии

Структура WDF_FILEOBJECT_CONFIG используется в качестве входных данных для метода WdfDeviceInitSetFileObjectConfig .

WDF_FILEOBJECT_CONFIG необходимо инициализировать путем вызова WDF_FILEOBJECT_CONFIG_INIT.

Поведение платформы для AutoForwardCleanupClose

Если для параметра AutoForwardCleanupClose задано значение WdfTrue, платформа выполняет следующие действия:
  • Платформа пересылает запросы на создание файлов в драйвер следующего уровня, если драйвер не предоставляет функцию обратного вызова EvtDeviceFileCreate и не вызывает WdfDeviceConfigureRequestDispatching , чтобы задать очередь ввода-вывода для получения запросов на создание файлов. Платформа не пересылает запросы на создание файлов, если драйвер предоставляет функцию обратного вызова или очередь для обработки запросов, поэтому драйвер должен переадресовать, завершить или отменить запросы.
  • Платформа отправляет запросы на очистку и закрытие файлов следующему драйверу после вызова функций обратного вызова EvtFileCleanup и EvtFileClose драйвера.
Если для параметра AutoForwardCleanupClose задано значение WdfFalse, платформа не пересылает запросы на создание, очистку или закрытие файлов. Вместо этого платформа выполняет запросы для драйвера.

Если для параметра AutoForwardCleanupClose задано значение WdfUseDefault, платформа использует поведение WdfTrue для драйверов фильтров и поведение WdfFalse для драйверов функций.

Поведение драйвера для AutoForwardCleanupClose

Локальный целевой объект ввода-вывода драйвера всегда должен получать равное количество запросов ввода-вывода с типами запросов WdfRequestTypeCreate, WdfRequestTypeCleanup и WdfRequestTypeClose. Поэтому, если драйвер предоставляет функцию обратного вызова EvtDeviceFileCreate или очередь ввода-вывода, которая получает запросы на создание файлов, необходимо использовать следующие правила:
  • Если драйвер задает для AutoForwardCleanupClose значение WdfTrue, драйвер должен перенаправлять все запросы на создание файлов в локальный целевой объект ввода-вывода. Это правило необходимо соблюдать, так как платформа перенаправляет все запросы на очистку и закрытие в локальный целевой объект независимо от того, предоставляет ли драйвер функции обратного вызова EvtFileCleanup и EvtFileClose .
  • Если драйвер устанавливает для параметра AutoForwardCleanupClose значение WdfFalse, драйвер не должен пересылать запросы на создание файла в локальный целевой объект ввода-вывода. Необходимо следовать этому правилу, так как платформа не перенаправляет запросы на очистку и закрытие в локальный целевой объект независимо от того, предоставляет ли драйвер функции обратного вызова EvtFileCleanup и EvtFileClose .
  • Если драйвер устанавливает для AutoForwardCleanupClose значение WdfDefault, драйвер должен следовать правилу для WdfTrue , если это драйвер фильтра. Драйвер должен следовать правилу для WdfFalse , если это драйвер функции.

Требования

Требование Значение
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)