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


функция WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE (wdfiotarget.h)

[Применяется только к KMDF]

Функция WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE инициализирует структуру WDF_IO_TARGET_OPEN_PARAMS драйвера, чтобы драйвер смог открыть удаленный целевой объект ввода-вывода, указав объект устройства модели драйвера Windows (WDM).

Синтаксис

void WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE(
  [out] PWDF_IO_TARGET_OPEN_PARAMS Params,
  [in]  PDEVICE_OBJECT             DeviceObject
);

Параметры

[out] Params

Указатель на структуру, выделенную драйвером WDF_IO_TARGET_OPEN_PARAMS , инициализируемую функцией.

[in] DeviceObject

Указатель на структуру DEVICE_OBJECT , которая используется в качестве значения элемента DeviceObjectструктуры WDF_IO_TARGET_OPEN_PARAMS .

Возвращаемое значение

None

Remarks

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

Функция WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE инициализирует элементы Size, Type и TargetDeviceObject указанной структуры WDF_IO_TARGET_OPEN_PARAMS .

Как правило, драйвер задает элемент TargetFileObject структуры WDF_IO_TARGET_OPEN_PARAMS после вызова драйвером WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE.

Дополнительные сведения о целевых объектах ввода-вывода см. в разделе Использование целевых объектов ввода-вывода.

Примеры

В следующем примере кода создается целевой объект ввода-вывода, который открывается путем указания структуры DEVICE_OBJECT. Пример драйвера получает структуру DEVICE_OBJECT путем вызова NdisMGetDeviceProperty (не показано).

WDF_IO_TARGET_OPEN_PARAMS  openParams;
NTSTATUS  ntStatus;

ntStatus = WdfIoTargetCreate(
                             Adapter->WdfDevice,
                             WDF_NO_OBJECT_ATTRIBUTES,
                             &Adapter->IoTarget
                             );
if (!NT_SUCCESS(ntStatus)) {
    DEBUGP(MP_ERROR, ("WdfIoTargetCreate failed 0x%x\n", ntStatus));
    break;
}

WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE(
                                               &openParams,
                                               Adapter->NextDeviceObject
                                               );

ntStatus = WdfIoTargetOpen(Adapter->IoTarget,
                           &openParams);
if (!NT_SUCCESS(ntStatus)) {
    DEBUGP(MP_ERROR, ("WdfIoTargetOpen failed 0x%x\n", ntStatus));
    break;
}

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfiotarget.h (включая Wdf.h)
IRQL Любой уровень

См. также раздел

WDF_IO_TARGET_OPEN_PARAMS

WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME

WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_NAME

WdfIoTargetOpen