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


структура WDF_IO_TARGET_OPEN_PARAMS (wdfiotarget.h)

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

Структура WDF_IO_TARGET_OPEN_PARAMS содержит параметры, используемые методом WdfIoTargetOpen.

Синтаксис

typedef struct _WDF_IO_TARGET_OPEN_PARAMS {
  ULONG                             Size;
  WDF_IO_TARGET_OPEN_TYPE           Type;
  PFN_WDF_IO_TARGET_QUERY_REMOVE    EvtIoTargetQueryRemove;
  PFN_WDF_IO_TARGET_REMOVE_CANCELED EvtIoTargetRemoveCanceled;
  PFN_WDF_IO_TARGET_REMOVE_COMPLETE EvtIoTargetRemoveComplete;
  PDEVICE_OBJECT                    TargetDeviceObject;
  PFILE_OBJECT                      TargetFileObject;
  UNICODE_STRING                    TargetDeviceName;
  ACCESS_MASK                       DesiredAccess;
  ULONG                             ShareAccess;
  ULONG                             FileAttributes;
  ULONG                             CreateDisposition;
  ULONG                             CreateOptions;
  PVOID                             EaBuffer;
  ULONG                             EaBufferLength;
  PLONGLONG                         AllocationSize;
  ULONG                             FileInformation;
  UNICODE_STRING                    FileName;
} WDF_IO_TARGET_OPEN_PARAMS, *PWDF_IO_TARGET_OPEN_PARAMS;

Члены

Size

Размер этой структуры в байтах.

Type

Значение типа WDF_IO_TARGET_OPEN_TYPE, указывающее тип операции открытия, WdfIoTargetOpen.

EvtIoTargetQueryRemove

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

EvtIoTargetRemoveCanceled

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

EvtIoTargetRemoveComplete

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

TargetDeviceObject

Этот член не применим к драйверам UMDF.

KMDF Если значение TypeWdfIoTargetOpenUseExistingDevice, это указатель на структуру DEVICE_OBJECT, представляющую устройство целевого ввода-вывода. Если значение типа не WdfIoTargetOpenUseExistingDevice, этот элемент игнорируется.

TargetFileObject

Этот член не применим к драйверам UMDF.

KMDF Если значение типа WdfIoTargetOpenUseExistingDevice, это указатель на структуру FILE_OBJECT. Эта структура включается во все запросы ввода-вывода, которые драйвер отправляет в целевой объект ввода-вывода (см. WdfRequestGetFileObject). Этот элемент является необязательным и может быть NULL. Если значение типа не WdfIoTargetOpenUseExistingDevice, этот элемент игнорируется.

TargetDeviceName

Если значение TypeWdfIoTargetOpenByName, это UNICODE_STRING структура, содержащая имя устройства, файла или интерфейса устройства. Сведения о формате этого имени см. в именах объектов.

Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

DesiredAccess

Если значение типа равно WdfIoTargetOpenByName, это значение ACCESS_MASK.

Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

значения KMDF Возможные значения включают FILE__ACCESS xxxx, такие как FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS или FILE_WRITE_ACCESS, а также GENERIC_READ, GENERIC_WRITE и GENERIC_ALL.

UMDF Наиболее часто используемые значения : GENERIC_READ, GENERIC_WRITE или оба (GENERIC_READ | GENERIC_WRITE). Обратите внимание, что ACCESS_MASK — это значение DWORD. Дополнительные сведения об этом элементе см. в параметре dwDesiredAccessCreateFile в пакете SDK для Windows.

ShareAccess

Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

KMDF Если значение Type равно WdfIoTargetOpenByName, это побитовая или из следующих флагов (которые определены в Wdm.h) или ноль.

Флаг ShareAccess Значение
FILE_SHARE_READ Драйверу не требуется монопольный доступ на чтение к устройству.
FILE_SHARE_WRITE Драйверу не требуется эксклюзивный доступ на запись к устройству.
FILE_SHARE_DELETE Драйверу не требуется монопольный доступ к удалению устройства.
 

UMDF Дополнительные сведения об этом члене см. в параметре dwShareMode функции CreateFile в пакете SDK для Windows.

Значение нуля в ShareAccess указывает, что драйверу требуется монопольный доступ к устройству.

FileAttributes

KMDF Если значение типа равно WdfIoTargetOpenByName, то это побитовое значение ИЛИ флагов FILE_ATTRIBUTE_Xxxx, определенных в Wdm.h. Большинство драйверов указывают FILE_ATTRIBUTE_NORMAL. Дополнительные сведения об этих флагах см. в ZwCreateFile.

UMDF Дополнительные сведения об этом члене см. в параметре dwFlagsAndAttributes CreateFile в пакете SDK для Windows.

Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

CreateDisposition

KMDF Если значение типа равно WdfIoTargetOpenByName, это значение указывает действие для системы, которое необходимо предпринять при открытии файла. Список возможных значений см. в разделе ZwCreateFile.

UMDF Дополнительные сведения об этом члене см. в параметре dwCreationDisposition функции CreateFile в пакете SDK для Windows.

Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

CreateOptions

Этот член не применим к драйверам UMDF.

KMDF Если значение типа равно WdfIoTargetOpenByName, то это побитовое значение или флаги параметра файла. Список возможных флагов см. в разделе ZwCreateFile. Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

EaBuffer

Этот член не применим к драйверам UMDF.

KMDF Если значение типа имеет значениеWdfIoTargetOpenByName, этот член указывает на буфер расширенных атрибутов. Как правило, драйверы предоставляют NULL для этого значения. Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

EaBufferLength

Этот член не применим к драйверам UMDF.

KMDF Если значение типа равно WdfIoTargetOpenByName, это длина буфера расширенных атрибутов. Как правило, драйверы предоставляют ноль для этого значения. Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

AllocationSize

Этот член не применим к драйверам UMDF.

KMDF Если значение типа равно WdfIoTargetOpenByName, этот элемент указывает размер в байтах, который система должна первоначально выделить для файла, если он создает новый файл. Это значение является необязательным и может быть равно нулю. Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

FileInformation

Этот член не применим к драйверам UMDF.

KMDF Если значение типа WdfIoTargetOpenByName, этот член получает сведения о состоянии при возвращении вызова WdfIoTargetOpen. Сведения являются одним из следующих значений: FILE_CREATED, FILE_OPENED, FILE_OVERWRITTEN, FILE_SUPERSEDED, FILE_EXISTS или FILE_DOES_NOT_EXIST. Если значение типа не WdfIoTargetOpenByName, этот элемент игнорируется.

FileName

Этот член не применим к драйверам KMDF.

UMDF структуру UNICODE_STRING, содержащую имя файла, из которого создается объект файла. Этот член является необязательным и применяется только в том случае, если значение типаWdfIoTargetOpenLocenTargetByFile. Большинство драйверов указывают null здесь, если нижний целевой объект не поддерживает доступ к пространству имен устройств. Если задано, строка не должна содержать символы разделителя путей (косая черта или обратная косая черта).

Замечания

Драйверы должны инициализировать структуру WDF_IO_TARGET_OPEN_PARAMS путем вызова одной из следующих функций:

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE, если драйвер может определить целевое устройство, предоставив указатель на структуру DEVICE_OBJECT.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME, если целевой объект ввода-вывода является устройством, файлом или интерфейсом устройства, и если драйвер может указать имя устройства, файла или интерфейса устройства. Если указать имя файла, который уже существует, система заменяет существующий файл. Если файл не существует, система создает его.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_NAME, если целевой объект ввода-вывода является устройством, файлом или интерфейсом устройства, и если драйвер может указать имя устройства, файла или интерфейса устройства. Если указать имя файла, который уже существует, система открывает существующий файл. Если файл не существует, операция открытия завершается ошибкой.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_REOPEN, если функция обратного вызова драйвера EvtIoTargetRemoveCanceled повторно открывает удаленный целевой объект ввода-вывода, так как устройство не было удалено.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE, если драйвер UMDF должен отправлять созданные драйвером запросы на более низкие целевые объекты, требующие связанного объекта файла.

Требования

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

См. также

ACCESS_MASK

DEVICE_OBJECT

EvtIoTargetQueryRemove

EvtIoTargetRemoveCanceled

FILE_OBJECT

UNICODE_STRING

WDF_IO_TARGET_OPEN_TYPE

WdfIoTargetOpen

WdfRequestGetFileObject

ZwCreateFile