Função WdfIoTargetStart (wdfiotarget.h)

[Aplica-se a KMDF e UMDF]

O método WdfIoTargetStart começa a enviar solicitações enfileiradas para um destino de E/S local ou remoto.

Sintaxe

NTSTATUS WdfIoTargetStart(
  [in] WDFIOTARGET IoTarget
);

Parâmetros

[in] IoTarget

Um identificador para um objeto de destino de E/S local ou remoto que foi obtido de uma chamada anterior para WdfDeviceGetIoTarget ou WdfIoTargetCreate, ou de um método que um destino de E/S especializado fornece.

Retornar valor

WdfIoTargetStart retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_DEVICE_STATE
O dispositivo foi removido.
 

Esse método também pode retornar outros valores NTSTATUS.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Se o driver puder detectar erros de dispositivo recuperáveis, talvez você queira que seu driver chame WdfIoTargetStop para interromper temporariamente o envio de solicitações e, em seguida, chame WdfIoTargetStart para retomar o envio de solicitações.

Além disso, se um driver chamar WdfUsbTargetPipeConfigContinuousReader para configurar um leitor contínuo para um pipe USB, a função de retorno de chamada EvtDeviceD0Entry do driver deverá chamar WdfIoTargetStart para iniciar o leitor.

Seu driver deve chamar WdfIoTargetStart e WdfIoTargetStop de forma síncrona. Depois que o driver chama uma dessas funções, ele não deve chamar a outra função antes que a primeira retorne.

Para obter mais informações sobre o WdfIoTargetStart, consulte Controlando o estado de um destino de E/S geral.

Para obter mais informações sobre destinos de E/S, consulte Usando destinos de E/S.

Exemplos

O exemplo de código a seguir mostra como uma função de retorno de chamada EvtDeviceD0Entry pode chamar WdfIoTargetStart, se o driver usar um leitor contínuo para um pipe 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;
}

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfiotarget.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), FailD0EntryIoTargetState(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader