콜백 동기화 모드 지정
경고
UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한됩니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.
자세한 내용은 UMDF를 사용한 시작 참조하세요.
드라이버는 프레임워크에서 콜백 함수를 호출하는 방법을 지정할 수 있습니다. 드라이버는 IWDFDriver::CreateDevice 메서드를 호출하여 디바이스에 대한 디바이스 개체 를 만들기 전에 디바이스에 대한 동기화(또는 잠금) 모드를 지정합니다. 동기화 모드를 지정하려면 드라이버는 IWDFDeviceInitialize::SetLockingConstraint 메서드를 호출해야 합니다. IDriverEntry::OnDeviceAdd 메서드를 호출하여 디바이스를 시스템에 추가하면 드라이버는 IWDFDeviceInitialize 인터페이스에 대한 포인터를 받습니다.
드라이버는 IWDFDeviceInitialize::SetLockingConstraint의 LockType 매개 변수에 있는 WDF_CALLBACK_CONSTRAINT 열거형 형식에서 다음 값 중 하나를 지정하여 잠금 모드를 식별할 수 있습니다. 지정된 제약 조건(또는 잠금) 유형은 하드웨어 디바이스가 악용할 수 있는 병렬 처리의 양과 드라이버가 처리할 수 있는 양에 따라 달라집니다.
| 값 | 의미 |
|---|---|
없음 (0) |
드라이버에 대한 콜백 함수가 동기화되지 않음을 나타냅니다. |
WdfDeviceLevel (1) |
드라이버에 대한 모든 큐 콜백 함수가 동기화됨을 나타냅니다. |
참고 드라이버가 IWDFDeviceInitialize::SetLockingConstraint 를 호출하여 값을 지정하지 않는 경우 프레임워크는 이 속성의 기본값을 WdfDeviceLevel로 설정합니다.
제약 조건은 큐 콜백 함수에만 적용되며 플러그 앤 플레이(PnP) 및 전원 관리 콜백 함수에는 적용되지 않습니다. 큐 콜백 함수에는 다음이 포함됩니다.
IQueueCallbackRead::OnRead 및 IQueueCallbackWrite::OnWrite와 같은 자동 디스패치 콜백 함수입니다. 자세한 내용은 I/O 큐 이벤트 콜백 함수를 참조하세요.
큐 상태 변경 콜백 함수(예: IQueueCallbackStateChange::OnStateChange).
IRequestCallbackCancel::OnCancel과 같은 취소 콜백 함수를 요청합니다.
파일 정리 및 닫기 콜백 함수(예: IFileCallbackCleanup::OnCleanupFile 및 IFileCallbackClose::OnCloseFile).
요청 완료 콜백 함수(IRequestCallbackRequestCompletion::OnCompletion)는 큐 콜백 함수가 아닙니다. 따라서 동기화되지 않습니다.