WDF_DEVICE_IO_TYPE 열거형(wudfddi_types.h)
[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]
WDF_DEVICE_IO_TYPE 열거형은 데이터 버퍼에 액세스하기 위한 메서드를 지정하는 데 사용됩니다.
Syntax
typedef enum _WDF_DEVICE_IO_TYPE {
WdfDeviceIoUndefined,
WdfDeviceIoNeither,
WdfDeviceIoBuffered,
WdfDeviceIoDirect,
WdfDeviceIoBufferedOrDirect,
WdfDeviceIoMaximum
} WDF_DEVICE_IO_TYPE, *PWDF_DEVICE_IO_TYPE;
상수
WdfDeviceIoUndefined 시스템에서 사용하도록 예약되었습니다. |
WdfDeviceIoNeither 시스템에서 사용하도록 예약되었습니다. |
WdfDeviceIoBuffered UMDF 및 드라이버는 버퍼링된 I/O 를 사용하여 데이터 버퍼에 액세스합니다. |
WdfDeviceIoDirect UMDF 및 드라이버는 직접 I/O 를 사용하여 데이터 버퍼에 액세스합니다. |
WdfDeviceIoBufferedOrDirect UMDF 및 드라이버는 버퍼링된 I/O 또는 직접 I/O를 사용하여 데이터 버퍼에 액세스할 수 있습니다. |
WdfDeviceIoMaximum 시스템에서 사용하도록 예약되었습니다. |
설명
WDF_DEVICE_IO_TYPE 열거형은 IWDFDeviceInitialize2::SetIoTypePreference에 대한 입력 및 IWDFIoRequest2::GetEffectiveIoType의 출력으로 사용됩니다.
드라이버에 대한 I/O 유형을 선택할 때 다음 지침을 사용해야 합니다.
- 버퍼링된 I/O는 애플리케이션과 드라이버가 별도의 데이터 복사본에 액세스하기 때문에 최상의 보안 및 안정성을 제공합니다. 또한 버퍼링된 I/O는 대부분의 데이터 전송이 상대적으로 작은 경우(일반적으로 두 개의 메모리 페이지 이하) 최상의 성능을 제공합니다.
- 대부분의 I/O 요청이 대량의 데이터를 전송하는 경우 직접 I/O는 최상의 성능을 제공합니다. 그러나 애플리케이션 및 드라이버는 데이터의 단일 복사본에 액세스합니다. 따라서 드라이버는 애플리케이션이 유효성 검사 후 매개 변수를 수정하지 않도록 매개 변수의 유효성을 검사하기 전에 애플리케이션 지정 매개 변수를 로컬 드라이버 메모리에 복사해야 합니다. 드라이버가 많은 양의 애플리케이션 데이터의 유효성을 검사해야 하는 경우 드라이버에서 유효성을 검사하기 전에 데이터를 복사할 필요가 없으므로 버퍼링된 I/O를 선택하는 것이 좋습니다.
- 일반적으로 여러 드라이버 스택에 상주할 수 있고 애플리케이션 데이터의 처리를 거의 수행하지 않는 필터 드라이버는 버퍼링된 I/O와 직접 I/O를 모두 지원할 수 있으므로 WdfDeviceIoBufferedOrDirect를 지정할 수 있습니다. 그러나 드라이버가 애플리케이션 지정 매개 변수의 유효성을 검사하는 경우 직접 I/O를 사용할 때 먼저 복사해야 합니다.
이 열거형의 KMDF 버전은 WDF_DEVICE_IO_TYPE 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
최소 UMDF 버전 | 1.9 |
머리글 | wudfddi_types.h(Wudfddi.h 포함) |
추가 정보
IWDFDeviceInitialize2::SetIoTypePreference
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기