Problemi noti di Windows Driver Kit (WDK)

Questo argomento illustra in dettaglio i problemi noti relativi a WDK.

WDK per Windows 11, versione 22H2

Errore del servizio all'avvio

Se è stato installato il Windows 11 originale, versione 22H2 WDK tra maggio e agosto 2022 (versione 10.0.22621.1), è possibile che venga visualizzato il messaggio di errore seguente all'avvio di Visual Studio con wdk.

Il Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null pacchetto non è stato caricato correttamente.

Questo problema è stato risolto in WDK versione 10.0.22621.382. È possibile disinstallare wdk e quindi reinstallare la versione più recente di WDK usando le istruzioni in Scaricare Windows Driver Kit.

Il debugger in Visual Studio non funziona

Non è possibile eseguire il debug dei driver all'interno dell'interfaccia di Visual Studio quando si usa Visual Studio 2022 versione 17.2.0 e 17.3 con il Windows 11 versione 22H2 WDK (10.0.22621.382). Per risolvere il problema, eseguire una delle operazioni seguenti: aggiornare Visual Studio alla versione 17.4.1 o successiva, eseguire il debug con WinDbg o usare una versione di Visual Studio precedente alla 17.2.0. Il seguente messaggio di errore è correlato a questo problema:

QueryBuildManagerBusyEx deve essere chiamato nell'interfaccia utente.

I co-installer ridistribuibili di WDF non funzionano

A partire da questa versione, i co-installer ridistribuibili di WDF non sono più supportati. In particolare, in un computer con sia il Windows 11 versione 22H2 WDK che un wdk precedente, durante la compilazione di un driver WDF 1.11, msbuild ha esito negativo perché non riesce a trovare il coinstallatore WDF.

Per risolvere questo problema, prima di installare Windows 11, versione 22H2 WDK, eseguire il backup della cartella \Program files (x86)\windows kit\10\redist\wdf e ripristinarla in seguito. In alternativa, se è già stato installato il Windows 11, versione 22H2 WDK, installare il file MSI in WDK 8 componenti ridistribuibili in un computer separato e copiare la redist cartella nella cartella precedente. Per altre informazioni, vedere Redistributable Framework Components.For more information, see Redistributable Framework Components.

WDK per Windows 10, versione 2004

Problema nelle funzioni ExAllocatePoolZero, ExAllocatePoolQuotaZero e ExAllocatePoolPriorityZero

Nel maggio 2020, OSR ha scoperto che il nuovo supporto di livello inferiore per l'assegnazione automatica delle allocazioni di pool ha avuto un problema che potrebbe causare un'allocazione che non viene inizializzata zero nei sistemi che eseguono Windows 10, versione 1909. Questo problema è stato risolto con un aggiornamento della sicurezza di WDK per Windows 10, versione 2004 e Enterprise WDK (EWDK) per Windows 10, versione 2004 il 16 dicembre. Microsoft ha sfruttato l'aggiornamento della sicurezza e ha aggiornato EWDK per includere gli strumenti di compilazione di Visual Studio 16.7. Microsoft consiglia a tutti gli sviluppatori di driver di disinstallare l'SDK originale e WDK (versione 2004) e installare l'SDK di aggiornamento e WDK o EWDK.

Per assicurarsi che sia stata eseguita una soluzione di sicurezza completa, è stata rilasciata una correzione del sistema operativo per Windows 10, versione 1909 a novembre, quindi, se è stato creato un driver con il problema di sicurezza, il sistema operativo verrebbe protetto da esso.

Oltre a scaricare wdK/EWDK aggiornato, Microsoft consiglia di cambiare tutte le allocazioni del kernel per usare le nuove DDI azzerato del pool che restituiscono memoria zero per impostazione predefinita. Ciò aumenterà la sicurezza e l'affidabilità dei driver. Per semplificare questa transizione, Microsoft ha creato una regola di verifica del driver statico disponibile in anteprima Windows 10 WDK versioni 20236 e successive. La regola identificherà tutte le istanze nel codice sorgente di un driver in cui vengono usate le DDI di allocazione del pool precedenti e le consiglia di sostituirle con la nuova DDI equivalente più sicura. La regola è applicabile ai driver basati su WDM, WDF e NDIS.

L'installazione di WDK non abilita più le mitigazioni Spectre per tutti i progetti C++ come illustrato in WDK 1903

Sebbene l'installazione di WDK abiliti la mitigazione Spectre per impostazione predefinita per tutti i driver, non le abilita più per tutti i progetti C++.

Errore 'WdK corrispondente alla destinazione '10.0.19041.0' non trovato.

Quando si seleziona [Versione di Windows SDK] a '10.0 (versione installata più recente)' con WDK 10.0.19041.0 viene generato l'errore "WdK corrispondente alla versione di destinazione '10.0.19041.0' " anche se la versione dell'SDK è installata.

Soluzione: Nella pagina delle proprietà del progetto driver (Proprietà >di configurazione Generale) impostare Versione di Windows SDK su $(LatestTargetPlatformVersion). Se questa opzione non è disponibile per selezionare, selezionare l'opzione eredita dall'impostazione predefinita padre o progetto.

EWDK e SDV in esecuzione nel server hanno requisiti .NET

L'esecuzione di Static Driver Verifier da EWDK richiede .Net Framework 4.7.2. A seconda della versione di Windows nel sistema, è possibile installare .NET, può essere installato, ma deve essere abilitato o potrebbe non essere installato. Per altre informazioni sulla versione di .NET installata o sullo stato dell'installazione di .NET, vedere Versioni e dipendenze di .NET Framework.

La generazione DVL ha esito negativo con System.IO.FileNotFoundException

Quando si tenta di creare un log di verifica del driver (DVL), verrà visualizzato l'errore seguente:

Unhandled Exception: System.IO.FileNotFoundException: 
Could not load file or assembly 
'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
or one of its dependencies. 
The system cannot find the file specified.

Ciò può verificarsi sia nella riga di comando che negli ambienti GUI. Questo problema viene risolto in una versione futura di WDK e può essere visualizzato nella Windows Insider Preview WDK. Sfortunatamente, non esiste alcuna soluzione alternativa per la versione corrente.

SdV ha esito negativo in EWDK se Visual Studio non è installato

SDV ha una dipendenza da VCRUNTIME140D.dll come parte di Visual Studio. Di conseguenza, l'esecuzione di EWDK in un computer senza Visual Studio installato avrà esito negativo. Installare Visual Studio nel computer per risolvere questo problema.

Verifica driver non viene abilitato/disabilitato quando si usa Esplora test WDK

Verifica driver non viene abilitato/disabilitato quando vengono eseguiti test fondamentali del dispositivo usando Esplora test WDK.

Soluzione: Nel computer client abilitare/disabilitare manualmente il verificatore del driver in base a queste istruzioni.

Installazioni side-by-side di WDK di Windows 10, versione 2004 e WDK Windows 10, versione 1903 o versione 1803

Con entrambe le versioni dei kit installati nello stesso PC, la funzionalità "Distribuisci driver" non funzionerà per la versione precedente.

Soluzione: Usare 1803 in un computer separato se è necessaria la funzionalità Distribuisci driver.

I test di Windows Device Testing Framework (WDTF) ora vengono eseguiti solo nei sistemi con versioni di Windows 10 corrispondenti come WDK

In WDK per Windows 10, versione 1809 sono state apportate modifiche a WDTF per supportare questa versione di Windows 10, versione 1809. L'effetto è che WDTF non verrà più eseguito nel sistema operativo di livello inferiore. La modifica continua con WDK per Windows 10 versione 2004.

Modificativa per i test di livello inferiore

I test WDTF in WDK per Windows 10 versione 1803 possono essere eseguiti nelle versioni precedenti di Windows.

APIValidator

In un computer x86 APIValidator non è in grado di eseguire su file binari x64. Se la compilazione di driver x64 in un apivalidator x86 deve essere disattivata.

Soluzione alternativa:

  1. Passare alla pagina delle proprietà della soluzione driver.

  2. Selezionare APIValidator, quindi Generale e quindi modificare Esegui ApiValidator da a No.

WdK in esecuzione nei sistemi Windows 7 richiede kb 3033929

È necessario installare Microsoft Security Advisory 3033929 (KB3033929) prima di installare WDK nei sistemi che eseguono Windows 7. KB3033929 possono essere scaricati dall'Area download Microsoft.

L'installazione di WDK genera un errore da Visual Studio in cui è già installato il componente aggiuntivo

Questo messaggio di errore può essere visualizzato se wdk è stato disinstallato, ma l'estensione dei driver WDK per Visual Studio non è stata disinstallata.

Risoluzione: In Visual Studio passare al menu a discesa Estensione , scegliere Gestisci estensioni, selezionare Windows Driver Kit e quindi fare clic su Disinstalla.

Domande frequenti

Ricerca per categorie indicare se le versioni WDK o EWDK in cui sono contenute le correzioni per l'azzero delle allocazioni del pool?

In Impostazioni di sistema passare a Aggiungi o Rimuovi programmi, cercare Windows Driver Kit e prendere nota della versione. Il WDK originale per Windows 10 versione 2004 ha una versione 10.0.19041.1, la versione wdK aggiornata è 10.0.19041.685 Per EWDK, dopo l'avvio dell'ambiente EWDK, esaminare il titolo della finestra di comando. La versione aggiornata conterrà vb_release_svc_prod1.19041.685. Inoltre, quando si esaminano le variabili di ambiente, la variabile BuildLab dovrebbe mostrare vb_release_svc_prod1.19041.685.

Anche Windows Software Development Kit (SDK) è stato aggiornato, è necessario?

No, tuttavia, Windows Software Development Kit (SDK) aggiornato contiene una correzione per onecore.lib che potrebbe essere bello avere. Inoltre, è in genere consigliabile mantenere allineato l'SDK e wdk.

Se è già installato WDK per Windows 10 versione 2004, è necessario disinstallarlo prima di installare la versione aggiornata?

È consigliabile che se si dispone dell'SDK 2004 originale e di WDK disinstallati e che siano installati l'SDK per l'aggiornamento della sicurezza e WDK. Ciò significa che se il WDK aggiornato è installato sopra il WDK originale, la versione aggiornata sovrascriverà l'originale. Nota: in questo scenario "Aggiungi o rimuovi programmi", verranno elencate entrambe le versioni.