Compartilhar via


Função WdfIoQueueStop (wdfio.h)

[Aplica-se a KMDF e UMDF]

O método WdfIoQueueStop impede que uma fila de E/S entregue solicitações de E/S, mas a fila recebe e armazena novas solicitações.

Sintaxe

void WdfIoQueueStop(
  [in]           WDFQUEUE               Queue,
  [in, optional] PFN_WDF_IO_QUEUE_STATE StopComplete,
  [in, optional] WDFCONTEXT             Context
);

Parâmetros

[in] Queue

Um identificador para um objeto de fila de estrutura.

[in, optional] StopComplete

Um ponteiro para uma função de retorno de chamada EvtIoQueueState fornecida pelo driver. Esse parâmetro é opcional e pode ser NULL.

[in, optional] Context

Um ponteiro não tipado para informações de contexto fornecidas pelo driver que a estrutura passa para a função de retorno de chamada EvtIoQueueState . Esse parâmetro é opcional e pode ser NULL.

Retornar valor

Nenhum

Comentários

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

Se o driver fornecer uma função de retorno de chamada EvtIoQueueState , a estrutura a chamará depois que todas as solicitações que foram entregues ao driver tiverem sido concluídas ou canceladas. Você pode modificar o IRQL no qual o retorno de chamada é executado especificando ExecutionLevel em WDF_OBJECT_ATTRIBUTES no momento da criação da fila. Para obter mais informações, consulte a seção Comentários doEVT_WDF_IO_QUEUE_STATE.

O método WdfIoQueueStop permite que a fila receba novas solicitações, mesmo que a fila não estivesse recebendo novas solicitações antes do driver chamado WdfIoQueueStop. Por exemplo, antes de chamar WdfIoQueueStop, um driver pode chamar WdfIoQueueDrain, o que faz com que a estrutura pare de adicionar novas solicitações de E/S à fila. A chamada subsequente do driver de WdfIoQueueStop faz com que a estrutura retome a adição de solicitações à fila.

Um driver não deve chamar WdfIoQueueDrain depois de chamar WdfIoQueueStop até que ele tenha reiniciado a fila chamando WdfIoQueueStart.

Para obter mais informações sobre o método WdfIoQueueStop , consulte Gerenciando filas de E/S.

Exemplos

O exemplo de código a seguir interrompe uma fila de E/S especificada. Quando todas as solicitações entregues ao driver tiverem sido concluídas ou canceladas, ela chamará a função EvtIoQueueStateStop de um driver.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

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 wdfio.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf)

Confira também

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously