Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к 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) |