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


структура 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

Указатель на функцию обратного вызова драйвера EvtFileCl ose или 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, чтобы задать очередь ввода-вывода для получения запросов на создание файлов. Платформа не пересылает запросы на создание файлов, если драйвер предоставляет функцию обратного вызова или очередь для обработки запросов, поэтому драйвер должен пересылки, завершитьили отменить запросов.
  • Платформа отправляет запросы на очистку и закрытие файлов следующему драйверу после вызова функций обратного вызова evtFileClean up и EvtFileClose.
Если AutoForwardCleanupClose установлено значение WdfFalse, платформа не перенаправляет запросы на создание файлов, очистку или закрытие запросов. Вместо этого платформа завершает запросы драйвера.

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

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

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

Требования

Требование Ценность
минимальная версия KMDF 1.0
минимальная версия UMDF 2.0
Заголовок wdfdevice.h (include Wdf.h)