콜백 동기화 모드 지정
경고
UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.
보관된 UMDF 1 샘플은 Windows 11 버전 22H2 - 2022년 5월 드라이버 샘플 업데이트에서 찾을 수 있습니다.
자세한 내용은 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)는 큐 콜백 함수가 아닙니다. 따라서 동기화되지 않습니다.