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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de