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


Функция WdfIoTargetStart (wdfiotarget.h)

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

Метод WdfIoTargetStart начинает отправку очередных запросов к локальному или удаленному целевому объекту ввода-вывода.

Синтаксис

NTSTATUS WdfIoTargetStart(
  [in] WDFIOTARGET IoTarget
);

Параметры

[in] IoTarget

Дескриптор локального или удаленного целевого объекта ввода-вывода, полученного из предыдущего вызова WdfDeviceGetIoTarget или WdfIoTargetCreate, или из метода, который предоставляет специализированный целевой объект ввода-вывода.

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

WdfIoTargetStart возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может возвращать одно из следующих значений:

Код возврата Описание
STATUS_INVALID_DEVICE_STATE
Устройство удалено.
 

Этот метод также может возвращать другие значения NTSTATUS.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Если драйвер может обнаружить ошибки, которые можно восстановить, может потребоваться, чтобы драйвер вызвал WdfIoTargetStop , чтобы временно прекратить отправку запросов, а затем вызвать WdfIoTargetStart , чтобы возобновить отправку запросов.

Кроме того, если драйвер вызывает WdfUsbTargetPipeConfigContinuousReader для настройки непрерывного чтения для USB-канала, функция обратного вызова EvtDeviceD0Entry драйвера должна вызвать WdfIoTargetStart , чтобы запустить средство чтения.

Драйвер должен вызывать WdfIoTargetStart и WdfIoTargetStop синхронно. После того как драйвер вызывает одну из этих функций, он не должен вызывать другую функцию до возврата первой.

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

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

Примеры

В следующем примере кода показано, как функция обратного вызова EvtDeviceD0Entry может вызывать WdfIoTargetStart, если драйвер использует непрерывное средство чтения для USB-канала.

NTSTATUS
MyEvtDeviceD0Entry(
    IN  WDFDEVICE Device,
    IN  WDF_POWER_DEVICE_STATE PreviousState
)
{
    PDEVICE_CONTEXT  pDeviceContext;
    NTSTATUS  status;

    pDeviceContext = GetMyDeviceContext(Device);

    status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(pDeviceContext->InterruptPipe));

    return status;
}

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfiotarget.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Правила соответствия DDI DriverCreate(kmdf), FailD0EntryIoTargetState(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

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

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader