이 항목에서는 KMDF(Kernel-Mode Driver Framework), 해당 버전의 Windows 운영 체제 및 각 릴리스의 변경 내용을 나열합니다.
다음 표에서는 KMDF 라이브러리의 릴리스 기록을 보여 줍니다. 오른쪽의 본문에 있는 사이드바를 사용하여 특정 버전으로 빠르게 이동할 수 있습니다.
KMDF 버전 | 초기 릴리스 | 에 포함됨 | 이 KMDF 버전을 사용하는 드라이버는 다음에서 실행됩니다. |
---|---|---|---|
1.33 | Windows 11 버전 21H2 WDK; Windows Server 2022용 WDK | Windows 11 버전 24H2; Windows 11 버전 23H2; Windows 11 버전 22H2; Windows 11 버전 21H2; Windows Server 2022 | Windows 11 버전 21H2 이상; Windows Server 2022 이상 |
1.31 | Windows 10 버전 2004 WDK | Windows 10, 버전 2004 | Windows 10 버전 2004 이상 |
1.29 | WDK에서 릴리스되지 않음 | Windows 10, 버전 1903 | Windows 10 버전 1903 이상 |
1.27 | Windows 10 버전 1809 WDK | Windows 10, 버전 1809 | Windows 10 버전 1809 이상 |
1.25 | Windows 10 버전 1803 WDK | Windows 10, 버전 1803 | Windows 10 버전 1803 이상 |
1.23 | Windows 10 버전 1709 WDK | Windows 10 버전 1709 | Windows 10 버전 1709 이상 |
1.21 | Windows 10 버전 1703 WDK | Windows 10 버전 1703 | Windows 10 버전 1703 이상 |
1.19 | Windows 10 버전 1607 WDK | Windows 10 버전 1607 | Windows 10 버전 1607, Windows Server 2016 이상 |
1.17 | Windows 10 버전 1511 WDK | Windows 10 버전 1511 | Windows 10 버전 1511, Windows Server 2016 이상 |
1.15 | Windows 10 WDK | Windows 10 버전 1507 | Windows 10 버전 1507, Windows Server 2016 이상 |
1.13 | Windows 8.1 WDK | Windows 8.1 | Windows 8.1 이상 |
1.11 | Windows 8 WDK | Windows 8 | Windows Vista 이상 |
1.9 | Windows 7 WDK | Windows 7 | Windows XP 이상 |
1.7 | Windows Server 2008 WDK | Windows Vista sp1(서비스 팩 1) Windows Server 2008 | Windows 2000 이상 |
1.5 | Windows Vista의 Windows Driver Kit (WDK) | 윈도우 비스타 | Windows 2000 이상 |
1.1 | 다운로드 전용 | 없음 | Windows 2000 이상 |
1.0 | 다운로드 전용 | 없음 | Windows XP 이상 |
Microsoft Visual Studio 2022에서 WDK(Windows 드라이버 키트)를 사용하여 Windows 10 이상에서 실행되는 드라이버를 빌드할 수 있습니다.
WDF 버전을 선택하는 데 도움이 필요하다면 어떤 프레임워크 버전을 사용해야 하나요?을 참고하세요.
콜백 및 메서드의 전체 목록과 적용되는 프레임워크 및 버전은 WDF 콜백 및 메서드 요약을 참조하세요.
Windows 10의 KMDF 드라이버에 대한 새로운 기능에 대한 자세한 내용은 WDF 드라이버의 새로운 기능을 참조하세요.
아래의 각 KMDF 버전 섹션에 대해 릴리스된 Windows 버전이 괄호로 나열됩니다.
최신 버전 - KMDF 1.33(Windows 11, 버전 21H2; Windows Server 2022)
- 디바이스가 SystemManagedIdleTimeout 또는 SystemManagedIdleTimeoutWithHint을 WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE 열거형에서 지정하는 경우, WaitForD0를 FALSE로 설정하고 WdfDeviceStopIdle 매크로를 호출할 때, 디바이스가 여전히 D0 상태에 있고 유휴 시간 제한이 아직 경과되지 않았다면, WdfDeviceStopIdle는 STATUS_SUCCESS를 반환합니다 (이전 버전에서는 반환 값이 STATUS_PENDING이었습니다).
- WDF_POWER_FRAMEWORK_SETTINGS 구조체에는 두 개의 새 멤버(PoFxDeviceFlags 및 DirectedPoFxEnabled)가 있습니다.
KMDF 1.31(Windows 10 버전 2004)
- 새 API WdfDeviceSetDeviceInterfaceStateEx 추가됨
- 기존 API WdfDeviceGetSystemPowerAction 개선
- 새 API WdfPdoInitRemovePowerDependencyOnParent가 추가됨
- 지향성 전력 관리 프레임워크 소개
KMDF 1.29(Windows 10 버전 1903)
버전 1.25에서 변경되지 않았습니다.
KMDF 1.27(Windows 10 버전 1809)
버전 1.25에서 변경되지 않았습니다.
KMDF 1.25(Windows 10 버전 1803)
- 여러 버전의 WindowsWDF 드라이버를 빌드합니다.
KMDF 1.23(Windows 10 버전 1709)
- 내부용으로만 추가된 도우미 기능입니다. 자세한 내용은 Wdfcompanion.h를 참조하세요.
KMDF 1.21(Windows 10 버전 1703)
- WdfFileObjectGetInitiatorProcessId 는 이전에 UMDF 전용이었으며 이제 KMDF에서 사용할 수 있습니다.
- WdfRequestGetRequestorProcessId 는 이전에 UMDF 전용이었으며 이제 KMDF에서 사용할 수 있습니다.
- WdfObjectDereferenceActual: PCHAR에서 PCCH로 변경된 파일 매개 변수의 형식입니다.
- WdfObjectReferenceActual: PCHAR에서 PCCH로 변경된 파일 매개 변수의 형식입니다.
- 과도한 개체 생성을 디버깅하기 위해 ObjectLeakDetectionLimit 및 ObjectsForLeakDetection WDF 레지스트리 값이 추가되었습니다. 자세한 내용은 WDF 드라이버 디버깅에 대한레지스트리 값을 참조하세요.
- SleepStudy 소프트웨어 도구는 KMDF 드라이버가 시스템이 절전 모드로 들어가지 못하게 하는 전원 참조 수를 보고합니다. 자세한 내용은 Modern standby SleepStudy를 참조하세요.
KMDF 1.19(Windows 10 버전 1607)
- WdfDmaTransactionSetSingleTransferRequirement 추가됨
- WDF_DMA_ENABLER_CONFIG_FLAGS에 WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER 플래그가 추가됨
- WdfDmaTransactionInitialize 및 WdfDmaTransactionDmaCompleted에 대한 STATUS_WDF_TOO_MANY_TRANSFERS 반환 값이 추가됨
- !wdfkd.wdfdmatransaction 및 !wdfkd.wdfdmaenabler에 단일 전송 출력에 대한 출력 메시지 추가
- 단일 전송 DMA에 대한 자세한 내용은 단일 전송 DMA 사용을 참조하세요.
KMDF 1.15(Windows 10 버전 1507)
- 새 WdfDeviceOpenDevicemapKey 메서드를 사용하면 드라이버가 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP아래의 하위 키 및 값에 액세스할 수 있습니다.
- WDF 소스 코드는 Windows 드라이버 프레임워크공개적으로 사용할 수 있습니다. WDF에 대한 프라이빗 기호 파일은 Microsoft 기호 서버를 통해 사용할 수 있습니다. 다음도 참조하십시오: WDF 소스 디버깅 및 비디오: WDF 소스 코드를 사용한 드라이버 디버깅.
- 이제 IFR(Inflight Trace Recorder)을 사용할 수 있습니다. 이는 프레임워크의 이벤트 로거별개입니다. 자세한 내용은 IFR(Inflight Trace Recorder)에서 추적 을 기록하는 방법()과 KMDF 및 UMDF 드라이버에서 Inflight Trace Recorder를 사용하는 방법()에 대한 내용을을 참조하세요.
- GPIO 지원 디바이스에 대한 인터럽트 지원. 자세한 내용은 인터럽트 개체만들기를 참조하세요.
KMDF 1.13(Windows 8.1)
KMDF 버전 1.13에는 다음 기능이 추가됩니다.
- CanWakeDevice 멤버를 WDF_INTERRUPT_CONFIG 구조에 추가하여 저전력 Dx 상태에서 완전히 켜진 D0 상태로 디바이스를 가져오는 데 사용할 수 있는 인터럽트를 지원합니다. 자세한 내용은 절전 모드를 해제하기 위한 인터럽트 사용하기를 참조하세요.
- 고해상도 타이머 지원. 자세한 내용은 타이머 사용 참조하세요.
- 시스템이 저전력 상태에 있을 때 만료되어도 시스템을 깨우지 않는 타이머를 지원합니다. 자세한 내용은 타이머 사용 참조하세요.
- 통합 디바이스 속성 모델 액세스에 설명된 KMDF/UMDF 메서드는 다음과 같습니다.
UMDF 버전에 대한 자세한 내용은 UMDF 버전 기록을 참조하세요.
KMDF 1.11(Windows 8)
버전 1.11에는 다음 기능이 추가됩니다.
수동 수준 인터럽트 지원
단일 디바이스 내의 여러 구성 요소에 대한 기능 전원 상태
I/O 큐로 IRP 배포
다음 메서드는 다음과 같습니다.
- WdfDeviceConfigureWdmIrpDispatchCallback
- WdfDeviceInitSetReleaseHardwareOrderOnFailure
- WdfDeviceInitSetRemoveLockOptions
- WdfDeviceWdmDispatchIrp
- WdfDmaEnablerConfigureSystemProfile
- WdfDmaTransactionAllocateResources
- WdfDmaTransactionCancel
- WdfDmaTransactionFreeResources
- WdfDmaTransactionGetTransferInfo
- WdfDmaTransactionInitializeUsingOffset
- WdfDmaTransactionSetChannelConfigurationCallback
- WdfDmaTransactionSetDeviceAddressOffset
- WdfDmaTransactionSetImmediateExecution
- WdfDmaTransactionSetTransferCompleteCallback
- WdfDmaTransactionWdmGetTransferContext
- WdfInterruptQueueWorkItemForIsr
- WdfInterruptReportActive
- WdfInterruptReportInactive
- WdfInterruptTryToAcquireLock
- WdfIoQueueStopAndPurge
- WdfIoQueueStopAndPurgeSynchronously
- WdfIoTargetPurge
- WdfUsbTargetDeviceCreateIsochUrb
- WdfUsbTargetDeviceCreateUrb
- WdfUsbTargetDeviceCreateWithParameters
- WdfUsbTargetDeviceQueryUsbCapability
IdleTimeoutType 및 ExcludeD3Cold 멤버가 WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS에 추가되었습니다.
ReportInactiveOnPowerDown 멤버가 WDF_INTERRUPT_CONFIG에 추가되었습니다.
WdfIoTargetPurged 값을 WDF_IO_TARGET_STATE에 추가했습니다.
WDF_SPECIAL_FILE_TYPE에 WdfSpecialFileBoot 값이 추가되었습니다.
프레임워크 기반 드라이버를 디버깅하기 위한 레지스트리 값에DbgWaitForSignalTimeoutInSec이 추가되었습니다.
InstallWdf, MultiComp 및 SingleComp 샘플이 추가되었습니다.
KMDF 1.9(Windows 7)
버전 1.9는 다음 기능을 추가합니다.
I/O 큐의 지속적인 진행 보장
자식 디바이스의 I/O 큐에서 부모 디바이스의 I/O 큐로 I/O 요청을 재큐잉하기 위한 지원
개별 큐 개체에 대한 큐 수준 동기화 를 지정하는 기능입니다.
다음 메서드는 다음과 같습니다.
드라이버가 병렬 I/O 큐에서 드라이버에 제공하는 I/O 요청 수를 제한할 수 있도록 NumberOfPresentedRequests 멤버를 WDF_IO_QUEUE_CONFIG 구조에 추가했습니다.
WdfFileObjectCanBeOptional 플래그를 WDF_FILEOBJECT_CLASS 구조체에 추가했습니다.
tolerableDelay 멤버를 WDF_TIMER_CONFIG 구조체에 추가했습니다.
WdfDefaultIdleInWorkingState 및 WdfDefaultWakeFromSleepState 레지스트리 값이 추가되었습니다.
KMDF 1.7(Windows Vista 서비스 팩 1; Windows Server 2008)
WdfDeviceEnqueueRequest 메서드는 IRQL<=DISPATCH_LEVEL 호출할 수 있습니다.
지정된 작업 항목이 작업 항목 큐에 이미 있는 경우 WdfWorkItemEnqueue 메서드를 호출할 수 있습니다.
EvtDeviceArmWakeFromSxWithReason 이벤트 콜백 함수가 추가되었습니다.
ArmForWakeIfChildrenAreArmedForWake 및 IndicateChildWakeOnParentWake 멤버를 WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS 구조에 추가했습니다.
KMDF 1.5(Windows Vista)
KMDF 1.1(Windows 버전에서 릴리스되지 않음)
- 다음 메서드는 다음과 같습니다.
KMDF 1.0(Windows 버전에서 릴리스되지 않음)
초기 릴리스입니다.