enumeração WDF_DEVICE_IO_TYPE (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. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]
A enumeração WDF_DEVICE_IO_TYPE é usada para especificar um método para acessar buffers de dados.
Syntax
typedef enum _WDF_DEVICE_IO_TYPE {
WdfDeviceIoUndefined,
WdfDeviceIoNeither,
WdfDeviceIoBuffered,
WdfDeviceIoDirect,
WdfDeviceIoBufferedOrDirect,
WdfDeviceIoMaximum
} WDF_DEVICE_IO_TYPE, *PWDF_DEVICE_IO_TYPE;
Constantes
WdfDeviceIoUndefined Reservado para uso do sistema. |
WdfDeviceIoNeither Reservado para uso do sistema. |
WdfDeviceIoBuffered O UMDF e o driver usam E/S em buffer para acessar buffers de dados. |
WdfDeviceIoDirect O UMDF e o driver usam E/S direta para acessar buffers de dados. |
WdfDeviceIoBufferedOrDirect O UMDF e o driver podem usar E/S em buffer ou E/S direta para acessar buffers de dados. |
WdfDeviceIoMaximum Reservado para uso do sistema. |
Comentários
A enumeração WDF_DEVICE_IO_TYPE é usada como entrada para IWDFDeviceInitialize2::SetIoTypePreference e como saída de IWDFIoRequest2::GetEffectiveIoType.
Você deve usar as seguintes diretrizes ao escolher um tipo de E/S para o driver:
- A E/S em buffer fornece a melhor segurança e confiabilidade, pois aplicativos e drivers acessam cópias separadas dos dados. Além disso, a E/S em buffer fornecerá o melhor desempenho se a maioria das transferências de dados for relativamente pequena (normalmente duas páginas de memória ou menos).
- A E/S direta fornece o melhor desempenho se a maioria das solicitações de E/S transferir grandes quantidades de dados. No entanto, aplicativos e drivers acessam uma única cópia dos dados. Portanto, o driver deve copiar parâmetros especificados pelo aplicativo para a memória do driver local antes de validar os parâmetros para garantir que o aplicativo não modifique os parâmetros após a validação. Se o driver precisar validar grandes quantidades de dados do aplicativo, a E/S armazenada em buffer poderá ser uma opção melhor porque o driver não precisa copiar os dados antes de validá-los.
- Normalmente, um driver de filtro que pode residir em várias pilhas de driver e executa pouco processamento de dados de aplicativo pode dar suporte a E/S em buffer e E/S direta e, portanto, pode especificar WdfDeviceIoBufferedOrDirect. No entanto, se o driver validar os parâmetros especificados pelo aplicativo, ele deverá copiá-los primeiro quando a E/S direta for usada.
Para obter a versão KMDF dessa enumeração, consulte WDF_DEVICE_IO_TYPE.
Requisitos
Requisito | Valor |
---|---|
Versão mínima do UMDF | 1,9 |
Cabeçalho | wudfddi_types.h (inclua Wudfddi.h) |
Confira também
IWDFDeviceInitialize2::SetIoTypePreference