enumeração WDF_DEVICE_IO_BUFFER_RETRIEVAL (wudfddi_types.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.]

A enumeração WDF_DEVICE_IO_BUFFER_RETRIEVAL é usada para especificar quando o UMDF disponibiliza os buffers de uma solicitação de E/S para o driver.

Syntax

typedef enum _WDF_DEVICE_IO_BUFFER_RETRIEVAL {
  WdfDeviceIoBufferRetrievalInvalid,
  WdfDeviceIoBufferRetrievalCopyImmediately,
  WdfDeviceIoBufferRetrievalDeferred,
  WdfDeviceIoBufferRetrievalMaximum
} WDF_DEVICE_IO_BUFFER_RETRIEVAL, *PWDF_DEVICE_IO_BUFFER_RETRIEVAL;

Constantes

 
WdfDeviceIoBufferRetrievalInvalid
Reservado para uso do sistema.
WdfDeviceIoBufferRetrievalCopyImmediately
O UMDF disponibiliza os buffers de uma solicitação de E/S para o driver (copiando-os para o processo de host do driver UMDF) assim que o UMDF recebe a solicitação de E/S. Para obter mais informações, consulte a seção Comentários a seguir.
WdfDeviceIoBufferRetrievalDeferred
O UMDF disponibiliza os buffers de uma solicitação de E/S para o driver (copiando-os para o processo de host do driver UMDF) somente quando o driver tenta acessar os buffers. Para obter mais informações, consulte a seção Comentários a seguir.
WdfDeviceIoBufferRetrievalMaximum
Reservado para uso do sistema.

Comentários

A enumeração WDF_DEVICE_IO_BUFFER_RETRIEVAL é usada como entrada para IWDFDeviceInitialize2::SetIoTypePreference.

Nas versões do UMDF anteriores à versão 1.9, o UMDF sempre disponibiliza os buffers de uma solicitação de E/S para o driver (copiando os buffers para o processo de host do driver UMDF) assim que o UMDF recebe a solicitação de E/S. IWDFIoRequest::GetInputMemory e IWDFIoRequest::GetOutputMemory são os únicos métodos de objeto que os drivers podem chamar para acessar os buffers.

As versões 1.9 e posteriores do UMDF podem dar suporte à recuperação imediata ou adiada de buffers de solicitação. Todos os novos drivers devem habilitar a recuperação adiada porque geralmente fornece melhor desempenho do driver do que a recuperação imediata. Se um driver não habilitar a recuperação adiada, o UMDF usará a recuperação imediata.

Para adiar a recuperação de buffers, seu driver deve chamar IWDFDeviceInitialize2::SetIoTypePreference e especificar o valor WdfDeviceIoBufferRetrievalDeferred . Depois que o driver habilitar a recuperação adiada, ele poderá chamar os seguintes métodos para acessar buffers de solicitação, usando o método de acesso em buffer ou direto:

IWDFIoRequest2::RetrieveInputBuffer

IWDFIoRequest2::RetrieveInputMemory

IWDFIoRequest2::RetrieveOutputBuffer

IWDFIoRequest2::RetrieveOutputMemory

Um driver que habilita a recuperação adiada não pode usar IWDFIoRequest::GetInputMemory e IWDFIoRequest::GetOutputMemory para acessar os buffers.

Para obter mais informações sobre como acessar os buffers de dados de uma solicitação de E/S, consulte Acessando buffers de dados em drivers de UMDF-Based.

Requisitos

Requisito Valor
Versão mínima do UMDF 1,9
Cabeçalho wudfddi_types.h (inclua Wudfddi.h)

Confira também

WDF_DEVICE_IO_TYPE (UMDF)