Функция WdfIoTargetStart (wdfiotarget.h)
[Применимо к KMDF и UMDF]
Метод WdfIoTargetStart начинает отправку очередных запросов к локальному или удаленному целевому объекту ввода-вывода.
Синтаксис
NTSTATUS WdfIoTargetStart(
[in] WDFIOTARGET IoTarget
);
Параметры
[in] IoTarget
Дескриптор локального или удаленного целевого объекта ввода-вывода, полученного из предыдущего вызова WdfDeviceGetIoTarget или WdfIoTargetCreate, или из метода, который предоставляет специализированный целевой объект ввода-вывода.
Возвращаемое значение
WdfIoTargetStart возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
|
Устройство удалено. |
Этот метод также может возвращать другие значения 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) |