Método IWDFIoTargetStateManagement::Stop (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método Stop para de enviar solicitações enfileiradas para um destino de E/S local.

Sintaxe

HRESULT Stop(
  [in] WDF_IO_TARGET_SENT_IO_ACTION Action
);

Parâmetros

[in] Action

Um valor de tipo WDF_IO_TARGET_SENT_IO_ACTION que identifica como lidar com a E/S enviada quando o objeto de destino de E/S é interrompido.

Retornar valor

Parar sempre retorna S_OK.

Comentários

Se o driver puder detectar erros de dispositivo recuperáveis, talvez você queira que seu driver chame Stop para interromper temporariamente o envio de solicitações para o destino de E/S local e, em seguida, chame IWDFIoTargetStateManagement::Start para retomar o envio de solicitações.

Além disso, se um driver chamar IWDFUsbTargetPipe2::ConfigureContinuousReader para configurar um leitor contínuo para um pipe USB, a função de retorno de chamada IPnpCallback::OnD0Exit do driver deverá chamar Stop para parar o leitor.

Se um driver tiver chamado Stop, ele ainda poderá enviar uma solicitação para o destino definindo o sinalizador WDF_REQUEST_OPTION_IGNORE_TARGET_STATE quando chamar IWDFIoRequest::Send. Se um driver definir esse sinalizador, o driver poderá enviar uma solicitação, como uma solicitação para redefinir um pipe USB (consulte IWDFUsbTargetPipe::Reset), para um dispositivo depois que o driver tiver chamado Stop.

Seu driver deve chamar IWDFIoTargetStateManagement::Start e Stop de forma síncrona. Depois que o driver chama uma dessas funções, ele não deve chamar nenhuma das funções antes que a primeira chamada retorne.

Seu driver pode chamar Parar várias vezes sem chamar IWDFIoTargetStateManagement::Start. Por exemplo, seu driver pode fazer o seguinte:

  1. Chame Stop e especifique um valor action de WdfIoTargetLeaveSentIoPending.
  2. Determine se o destino deve retomar o processamento de solicitações de E/S.
  3. Se o destino for retomado, chame IWDFIoTargetStateManagement::Start. Caso contrário, chame Stop novamente com um valor Action de WdfIoTargetCancelSentIo.
Para obter mais informações sobre Parar, 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 IPnpCallback::OnD0Exit pode chamar Stop, se o driver usar um leitor contínuo para um pipe USB. (Para ver como obter a interface IWDFIoTargetStateManagement , consulte o exemplo de código em IWDFIoTargetStateManagement::Start.)

HRESULT
CMyDevice::OnD0Exit(
    __in IWDFDevice*  pWdfDevice,
    __in WDF_POWER_DEVICE_STATE  previousState
    )
{
    HRESULT hr;
    hr = m_pIoTargetInterruptPipeStateMgmt->Stop(WdfIoTargetCancelSentIo);
    return hr;
}

Requisitos

Requisito Valor
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1.5
Cabeçalho wudfddi.h (inclua Wudfddi.h)
DLL WUDFx.dll

Confira também

IWDFIoTargetStateManagement

IWDFRemoteTarget::Stop