Cronologia delle versioni di KMDF
Questo argomento elenca le versioni di Kernel-Mode Driver Framework (KMDF), le versioni corrispondenti del sistema operativo Windows e le modifiche apportate in ogni versione.
La tabella seguente illustra la cronologia delle versioni della libreria KMDF. È possibile usare la barra laterale In questo articolo a destra per passare rapidamente a una versione specifica.
Versione kmdf | Versione iniziale | Incluso in | I driver che usano questa versione kmDF vengono eseguiti in |
---|---|---|---|
1.33 | Windows 11, versione 21H2 WDK; WDK per Windows Server 2022 | Windows 11, versione 24H2; Windows 11, versione 23H2; Windows 11, versione 22H2; Windows 11, versione 21H2; Windows Server 2022 | Windows 11, versione 21H2 e successive; Windows Server 2022 e versioni successive |
1.31 | Windows 10, versione 2004 WDK | Windows 10, versione 2004 | Windows 10, versione 2004 e successive |
1,29 | Non rilasciato in WDK | Windows 10, versione 1903 | Windows 10, versione 1903 e successive |
1.27 | Windows 10, versione 1809 WDK | Windows 10, versione 1809 | Windows 10, versione 1809 e successive |
1.25 | Windows 10, versione 1803 WDK | Windows 10 versione 1803 | Windows 10 versione 1803 e successive. |
1.23 | Windows 10, versione 1709 WDK | Windows 10 versione 1709 | Windows 10, versione 1709 e successive |
1.21 | Windows 10, versione 1703 WDK | Windows 10, versione 1703 | Windows 10, versione 1703 e successive |
1,19 | Windows 10, versione 1607 WDK | Windows 10 versione 1607 | Windows 10 versione 1607, Windows Server 2016 e versioni successive |
1.17 | Windows 10, versione 1511 WDK | Windows 10, versione 1511 | Windows 10 versione 1511, Windows Server 2016 e versioni successive |
1.15 | Windows 10 WDK | Windows 10, versione 1507 | Windows 10, versione 1507, Windows Server 2016 e versioni successive |
1.13 | Windows 8.1 WDK | Windows 8.1 | Windows 8.1 e versioni successive |
1.11 | Windows 8 WDK | Windows 8 | Windows Vista e versioni successive |
1,9 | Windows 7 WDK | Windows 7 | Windows XP e versioni successive |
1,7 | Windows Server 2008 WDK | Windows Vista con Service Pack 1 (SP1); Windows Server 2008 | Windows 2000 e versioni successive |
1,5 | Windows Vista WDK | Windows Vista | Windows 2000 e versioni successive |
1.1 | Solo download | None | Windows 2000 e versioni successive |
1.0 | Solo download | None | Windows XP e versioni successive |
Puoi usare Windows Driver Kit (WDK) con Microsoft Visual Studio 2022 per compilare driver eseguiti in Windows 10 e versioni successive.
Per informazioni su quale versione di WDF usare, vedere Quale versione del framework usare?.
Per un elenco completo di callback e metodi e a quali framework e versioni si applicano, vedere Riepilogo dei callback e dei metodi di WDF.
Per informazioni sulle nuove funzionalità per i driver KMDF in Windows 10, vedi Novità per i driver WDF.
Per ogni sezione della versione kmDF riportata di seguito, la versione di Windows in cui è stata rilasciata è elencata tra parentesi.
- Per i dispositivi che specificano SystemManagedIdleTimeout o SystemManagedIdleTimeoutWithHint nell'enumerazione WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE, quando si chiama la macro WdfDeviceStopIdle con WaitForD0 impostato su FALSE, se il dispositivo è ancora in D0 e il periodo di timeout di inattività non è ancora trascorso, WdfDeviceStopIdle restituisce STATUS_SUCCESS (nelle versioni precedenti viene restituito un valore restituito di STATUS_PENDING).
- WDF_POWER_FRAMEWORK_SETTINGS struttura ha due nuovi membri (PoFxDeviceFlags e DirectedPoFxEnabled).
- Aggiunta della nuova API WdfDeviceSetDeviceInterfaceStateEx
- Miglioramento dell'API esistente WdfDeviceGetSystemPowerAction
- Aggiunta della nuova API WdfPdoInitRemovePowerDependencyOnParent
- Introduzione a Directed Power Management Framework
Non modificato dalla versione 1.25.
Non modificato dalla versione 1.25.
- Funzionalità complementare aggiunta solo per uso interno. Per altre info, vedi Wdfcompanion.h.
- WdfFileObjectGetInitiatorProcessId era precedentemente disponibile solo in UMDF, ora disponibile in KMDF.
- WdfRequestGetRequestorProcessId era in precedenza solo UMDF, ora disponibile in KMDF.
- WdfObjectDereferenceActual: tipo di parametro File modificato da PCHAR a PCCH.
- WdfObjectReferenceActual: tipo di parametro File modificato da PCHAR a PCCH.
- Aggiunta dei valori del Registro di sistema WDF ObjectLeakDetectionLimit e ObjectsForLeakDetection per il debug di una creazione eccessiva di oggetti. Per altre informazioni, vedi Valori del Registro di sistema per il debug dei driver WDF.
- Lo strumento software SleepStudy segnala il numero di riferimenti di alimentazione che un driver KMDF ha che impedisce al sistema di andare in sospensione. Per altre info, vedi Modern standby SleepStudy.
- Aggiunta di WdfDmaTransactionSetSingleTransferRequirement
- Aggiunta del flag di WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER in WDF_DMA_ENABLER_CONFIG_FLAGS
- Aggiunta STATUS_WDF_TOO_MANY_TRANSFERS valore restituito per WdfDmaTransactionInitialize e WdfDmaTransactionDmaCompleted
- Aggiunta di messaggi di output per l'output di trasferimento singolo a !wdfkd.wdfdmatransaction e !wdfkd.wdfdmaenabler
- Per altre info su DMA a trasferimento singolo, vedi Uso di DMA a trasferimento singolo.
- Il nuovo metodo WdfDeviceOpenDevicemapKey consente a un driver di accedere a sottochiavi e valori in HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP.
- Il codice sorgente WDF è disponibile pubblicamente da Windows Driver Frameworks. I file di simboli privati per WDF sono disponibili tramite il server dei simboli Microsoft. Vedere anche Debug con origine e video WDF: Debug del driver con il codice sorgente WDF.
- Inflight Trace Recorder (IFR) è ora disponibile. Si noti che questo è separato dal logger di eventi del framework. Per altre informazioni, vedi Inflight Trace Recorder (IFR) per la registrazione di tracce e Uso di Registratore traccia in volo in KMDF e driver UMDF.
- Supporto per gli interrupt per i dispositivi basati su GPIO. Per altre informazioni, vedere Creazione di un oggetto Interrupt.
KmDF versione 1.13 aggiunge le funzionalità seguenti:
- Aggiunta del membro CanWakeDevice alla struttura WDF_INTERRUPT_CONFIG per supportare gli interrupt che possono essere usati per riportare un dispositivo da uno stato Dx a basso consumo al suo stato D0 completamente attivo. Per altre informazioni, vedere Uso di un interrupt per riattivare un dispositivo.
- Supporto per timer ad alta risoluzione. Per altre informazioni, vedere Uso dei timer.
- Supporto per i timer che non riattivano il sistema se scadono quando il sistema si trova in uno stato a basso consumo. Per altre informazioni, vedere Uso dei timer.
- I metodi KMDF/UMDF seguenti descritti in Accesso al modello di proprietà del dispositivo unificato:
Per informazioni sulle versioni di UMDF, vedere Cronologia delle versioni di UMDF.
La versione 1.11 aggiunge le funzionalità seguenti:
Supporto per gli interrupt a livello passivo
Stati di alimentazione funzionale per più componenti all'interno di un singolo dispositivo
I seguenti metodi:
- 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
Aggiunta di EvtDeviceUsageNotificationEx.
Aggiunta di membri IdleTimeoutType ed ExcludeD3Cold a WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS.
Aggiunta del membro ReportInactiveOnPowerDown a WDF_INTERRUPT_CONFIG.
Aggiunta del valore WdfIoTargetPurged a WDF_IO_TARGET_STATE.
Aggiunta del valore WdfSpecialFileBoot a WDF_SPECIAL_FILE_TYPE.
Aggiunta di DbgWaitForSignalTimeoutInSec ai valori del Registro di sistema per il debug dei driver basati su Framework.
Sono stati aggiunti esempi InstallWdf, MultiComp e SingleComp .
La versione 1.9 aggiunge le funzionalità seguenti:
Avanzamento garantito per le code di I/O
Supporto per la ripetizione delle richieste di I/O da una coda di I/O di un dispositivo figlio alla coda di I/O di un dispositivo padre
Possibilità di specificare la sincronizzazione a livello di coda per singoli oggetti coda.
I seguenti metodi:
Aggiunto il membro NumberOfPresentedRequests alla struttura WDF_IO_QUEUE_CONFIG in modo che i driver possano limitare il numero di richieste di I/O che il framework recapita al driver da una coda di I/O parallela.
Aggiunto il flag WdfFileObjectCanBeOptional alla struttura WDF_FILEOBJECT_CLASS .
Aggiunto il membro TolerableDelay alla struttura WDF_TIMER_CONFIG .
Aggiunta dei valori del Registro di sistema WdfDefaultIdleInWorkingState e WdfDefaultWakeFromSleepState .
Il metodo WdfDeviceEnqueueRequest può essere chiamato in IRQL<=DISPATCH_LEVEL.
Il metodo WdfWorkItemEnqueue può essere chiamato se l'elemento di lavoro specificato è già presente nella coda dell'elemento di lavoro.
Aggiunta della funzione di callback dell'evento EvtDeviceArmWakeFromSxWithReason .
Aggiunta dei membri ArmForWakeIfChildrenAreArmedForWake e IndicateChildWakeOnParentWake alla struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS.
Aggiunta del membro DriverPoolTag a WDF_DRIVER_CONFIG.
- I metodi seguenti:
Versione iniziale.