структура 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 Если значением Type является WdfIoTargetOpenUseExistingDevice, это указатель на структуру DEVICE_OBJECT , представляющую устройство целевого объекта ввода-вывода. Если значение Type не равно WdfIoTargetOpenUseExistingDevice, этот элемент игнорируется.
TargetFileObject
Этот элемент не применяется к драйверам UMDF.
KMDF Если значение Type — WdfIoTargetOpenUseExistingDevice, это указатель на структуру FILE_OBJECT . Эта структура включается во все запросы ввода-вывода, которые драйвер отправляет в целевой объект ввода-вывода (см . WdfRequestGetFileObject). Этот элемент является необязательным и может иметь значение NULL. Если значение Type не равно WdfIoTargetOpenUseExistingDevice, этот элемент игнорируется.
TargetDeviceName
Если параметр Type имеет значение WdfIoTargetOpenByName, это UNICODE_STRING структура, содержащая имя устройства, файла или интерфейса устройства. Сведения о формате этого имени см. в разделе Имена объектов.
Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
DesiredAccess
Если параметр Type имеет значение WdfIoTargetOpenByName, это значение ACCESS_MASK .
Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
KMDF Возможные значения: FILE_Xxxx_ACCESS, например 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. Дополнительные сведения об этом элементе см. в параметре dwDesiredAccessэлемента CreateFile в windows SDK.
ShareAccess
Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
KMDF Если значением Type является WdfIoTargetOpenByName, это побитовое ИЛИ следующих флагов (которые определены в Wdm.h) или ноль.
Флаг ShareAccess | Значение |
---|---|
FILE_SHARE_READ | Драйверу не требуется монопольный доступ на чтение устройства. |
FILE_SHARE_WRITE | Драйверу не требуется монопольный доступ на запись к устройству. |
FILE_SHARE_DELETE | Драйверу не требуется монопольный доступ к удалению устройства. |
UMDF Дополнительные сведения об этом элементе см. в параметре dwShareMode функции CreateFile в windows SDK.
Значение, равное нулю в ShareAccess , указывает, что драйверу требуется монопольный доступ к устройству.
FileAttributes
KMDF Если значением Type является WdfIoTargetOpenByName, это побитовое ИЛИ флагов FILE_ATTRIBUTE_Xxxx, определенных в Wdm.h. Большинство драйверов указывают FILE_ATTRIBUTE_NORMAL. Дополнительные сведения об этих флагах см. в разделе ZwCreateFile.
UMDF Дополнительные сведения об этом элементе см. в параметре dwFlagsAndAttributes функции CreateFile в windows SDK.
Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
CreateDisposition
KMDF Если параметр Type имеет значение WdfIoTargetOpenByName, это значение указывает на действие, которое система будет выполнять при открытии файла. Список возможных значений см. в разделе ZwCreateFile.
UMDF Дополнительные сведения об этом элементе см. в параметре dwCreationDisposition функции CreateFile в windows SDK.
Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
CreateOptions
Этот элемент не применяется к драйверам UMDF.
KMDF Если значение Type равно WdfIoTargetOpenByName, это побитовое ИЛИ флагов параметров файла. Список возможных флагов см. в разделе ZwCreateFile. Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
EaBuffer
Этот элемент не применяется к драйверам UMDF.
KMDF Если значением Type является WdfIoTargetOpenByName, этот элемент указывает на буфер расширенных атрибутов. Как правило, драйверы предоставляют значение NULL для этого значения. Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
EaBufferLength
Этот элемент не применяется к драйверам UMDF.
KMDF Если значение Type равно WdfIoTargetOpenByName, это длина буфера расширенных атрибутов. Как правило, драйверы предоставляют ноль для этого значения. Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
AllocationSize
Этот элемент не применяется к драйверам UMDF.
KMDF Если для параметра Type задано значение WdfIoTargetOpenByName, этот элемент указывает размер в байтах, который система должна изначально выделить для файла, если создается новый файл. Это значение является необязательным и может быть равно нулю. Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
FileInformation
Этот элемент не применяется к драйверам UMDF.
KMDF Если значение Type равно WdfIoTargetOpenByName, этот член получает сведения о состоянии при возврате вызова WdfIoTargetOpen . Эти сведения содержат одно из следующих значений: FILE_CREATED, FILE_OPENED, FILE_OVERWRITTEN, FILE_SUPERSEDED, FILE_EXISTS или FILE_DOES_NOT_EXIST. Если значение Type не равно WdfIoTargetOpenByName, этот элемент игнорируется.
FileName
Этот элемент не применяется к драйверам KMDF.
UMDF Структура UNICODE_STRING, содержащая имя файла, из которого создается объект файла. Этот элемент является необязательным и применяется только в том случае, если для параметра Type задано значение WdfIoTargetOpenLocalTargetByFile. Большинство драйверов указывают здесь значение 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 (включая Wdf.h) |