Compartilhar via


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

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum recurso novo 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 aoda UMDF .]

O método Parar para de enviar solicitações na fila para um de destino de E/S local.

Sintaxe

HRESULT Stop(
  [in] WDF_IO_TARGET_SENT_IO_ACTION Action
);

Parâmetros

[in] Action

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

Valor de retorno

Parar sempre retorna S_OK.

Observações

Se o driver puder detectar erros de dispositivo recuperáveis, convém que o driver chame Parar parar temporariamente de enviar solicitações para o destino de E/S local e, em seguida, chamar IWDFIoTargetStateManagement::Iniciar 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 deve chamar Parar para interromper o leitor.

Se um driver tiver chamado Parar, ele ainda poderá enviar uma solicitação para o destino definindo o sinalizador WDF_REQUEST_OPTION_IGNORE_TARGET_STATE ao 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 Parar.

O 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.

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

  1. Chame Parar e especifique um valor de Ação 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 Parar 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 Parar, 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.
da Plataforma de Destino Área de trabalho
versão mínima do UMDF 1.5
cabeçalho wudfddi.h (inclua Wudfddi.h)
de DLL WUDFx.dll

Consulte também

IWDFIoTargetStateManagement

IWDFRemoteTarget::Stop