Condividi tramite


Problemi noti di Windows Driver Kit (WDK)

In questo argomento vengono descritti in dettaglio i problemi noti relativi a WDK.

WDK per Windows 11, versione 24H2

Riavviare dopo il provisioning

Dopo il provisioning e la distribuzione, il computer di destinazione non viene riavviato dopo la procedura di distribuzione.

Supporto SxS del driver WDK ARM64

Quando entrambi i kit Windows 11, versione 24H2 e Windows 11, versione 22H2 sono installati in un computer ARM64, la creazione di un driver KMDF per ARM64 con TargetPlatformVersion impostato su Windows 11, versione 22H2 ha esito negativo con .WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol

L'installazione dell'estensione WDK non riesce

Se si usa Visual Studio versione 17.11.0 o successiva, deselezionare la casella di controllo Installa estensione nell'installazione di WDK.

WDK per Windows 11, versione 22H2

Errore del servizio all'avvio

Se è stato installato 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 quando si avvia 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 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 Windows 11 versione 22H2 WDK e 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 ripristinarlo in seguito. In alternativa, se hai già installato Windows 11, versione 22H2 WDK, installa il file MSI in WDK 8 redistributable components in un computer separato e copia 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'azzeazione 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 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 nel mese di novembre, quindi, se è stato creato un driver con il problema di sicurezza, il sistema operativo verrebbe protetto da esso.

Oltre a scaricare l'aggiornamento di WDK/EWDK, Microsoft consiglia di cambiare tutte le allocazioni del kernel per usare i nuovi 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 versione 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 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

Mentre l'installazione di WDK abiliterà la mitigazione Spectre per impostazione predefinita per tutti i driver, non li 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] su '10.0 (versione installata più recente)' con WDK 10.0.19041.0 causa l'errore "WdK corrispondente alla versione di destinazione '10.0.19041.0' non è stato trovato" anche se la versione dell'SDK è installata.

Soluzione alternativa: nella pagina delle proprietà del progetto driver (Proprietà >di configurazione Generale) impostare La 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, .NET può essere installato, 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 registro di verifica 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 negli ambienti della riga di comando che dell'interfaccia utente grafica. Questo problema viene risolto in una versione futura di WDK e può essere visualizzato nel WDK di Windows Insider Preview. Sfortunatamente, non esiste alcuna soluzione alternativa per la versione corrente.

SDV ha esito negativo in EWDK se VS 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.

Driver Verifier non viene abilitato/disabilitato quando si usa Esplora test WDK

Driver Verifier non viene abilitato/disabilitato quando vengono eseguiti i test Di base del dispositivo usando Esplora test WDK.

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

Installazioni side-by-side 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 alternativa: 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.

Alternativa ai 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 arch APIValidator non è in grado di eseguire su file binari x64. Se la compilazione di driver x64 in un APIValidator di computer 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 che il componente aggiuntivo è già installato

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

Soluzione: 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 stabilire se le versioni WDK o EWDK che ho contiene la correzione 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 visualizzare vb_release_svc_prod1.19041.685.

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

No, tuttavia l'SDK (Windows Software Development Kit) aggiornato contiene una correzione per onecore.lib che può essere utile. 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 viene installato sopra il WDK originale, la versione aggiornata sovrascriverà l'originale. Nota: in questo scenario "Aggiungi o rimuovi programmi", verranno elencate entrambe le versioni.