Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Felsökningsverktyg för Windows stöder kernelfelsökning via en nätverkskabel med flera fysiska funktioner (PFs) på de nätverkskort som stöds genom partitionering av PCI-konfigurationsutrymmet.
Med 2PF-felsökning kan varje PF anslutas till en enda nätverksport, så att funktionen för kernelfelsökning kan anslutas till en PF medan standardnätverksstacken pratar med den andra PF. På grund av detta behöver KDNIC inte dirigera Windows-nätverkstrafiken via KDNET, och KDNET ansvarar bara för att dirigera värdkärnfelsökartrafiken. Detta resulterar i en dramatisk prestandaökning.
Det här avsnittet beskriver hur du konfigurerar 2PF-felsökning med hjälp av verktyget kdnet.exe.
Nätverkskortleverantörer uppmuntras att aktivera stöd för den här funktionen. Mer information finns i Debugger 2PF KDNET Miniport Network Driver Support.
Två drivrutiner körs över det partitionerade PCI-konfigurationsutrymmet
Inkorgsdrivrutinen för Windows tar slut på den primära nätverksporten på bus.dev.fun0.0 PCI plats.
The KDNET-Ext. modulen får slut på den tillagda PF-modulen vid bus.dev.fun0.1ser den här tekniken till att Windows inkorgens NIC-drivrutin inte påverkas genom att dela nätverkskortet med KDNET.
Den dator som kör felsökningsprogrammet kallas värddatoroch datorn som debuggas kallas måldator.
Kernel-Mode 2PF-enhetskrav
Följande krävs:
På måldatorn finns ett 2PF-nätverkskort som stöds.
På värddatorn, ett nätverkskort.
En nätverksanslutning mellan målmaskinen och värddatorn.
Windows 10 Build 21313 och senare.
2PF-nätverkskort som stöds
Leverantörer som NVIDIA Mellanox och Cisco tillhandahåller nätverkskort som stöder 2PF-nätverksfelsökning. Kontakta nätverkskortleverantören för att se vilka modeller av nätverkskortet som stöds. Observera att vissa leverantörer stöder 2PF på en underuppsättning nätverkskort som delar samma PnP-ID.
Använd kdnet.exe för att bekräfta enhetens kompatibilitet och visa värdet för busparams
Använd kdnet.exe-verktyget för att visa parameterinformationen för kontrollanter som stöder KDNET 2PF-transportfelsökning.
Bekräfta att Windows-felsökningsverktygen är installerade på värdsystemet. Information om hur du laddar ned och installerar felsökningsverktygen finns i Felsökningsverktyg för Windows.
Leta upp filerna kdnet.exe och VerifiedNICList.xml. Som standard finns de här.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64På värddatorn kopierar du de två filerna till en nätverksresurs eller ett USB-minne så att de är tillgängliga på måldatorn.
På måldatorn skapar du en
C:\KDNET-katalog och kopierar kdnet.exe- och VerifiedNICList.xml-filerna till katalogen.Öppna ett kommandotolksfönster som administratör på måldatorn. Ange det här kommandot för att kontrollera att måldatorn har ett nätverkskort som stöds och för att visa busparams-värdet.
C:\KDNET>kdnet.exe Network debugging is supported on the following NICs: busparams=141.0.0, Mellanox ConnectX-4 Lx Ethernet Adapter #2, Plugged in, Primary function, multiple physical functions are supported. Network debugging is supported on the following USB controllers: busparams=128.15.0, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft) busparams=0.15.0, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft) busparams=128.15.1, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft) busparams=0.15.1, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)Eftersom utdata som visas ovan inte innehåller "KDNET körs på det här nätverkskortet."anger detta att traditionell KDNET-felsökning inte är aktiverad på något av korten.
Om nätverkskortet inte stöder flera PF-funktioner, utelämnas PF-statusmeddelandet för "flera fysiska funktioner stöds" (tom) från den information som visas.
Om nätverkskortet stöder flera PF beror den faktiska informationen som visas på kombinationen av nätverksporten (rotporten/PF-porten har lagts till), samt kabelns anslutna/frånkopplade status till/från den fysiska NIC-porten.
Den här tabellen sammanfattar olika PF-meddelanden för det primära nätverkskortet.
Nätverkskort bus.dev.fun motsvarar Kabelstatus PF-status original (primär) PF-kabel ansluten Primär funktion, flera fysiska funktioner är aktiverade original (primär) PF-kabeln är frånkopplad Primär funktion, flera fysiska funktioner stöds Den här tabellen sammanfattar olika PF-meddelanden för det sekundära nätverkskortet.
Det nätverksgränssnittskort bus.dev.fun motsvarar Kabelstatus PF-status ny (sekundär) PF-port Kdnet körs Sekundär funktion ny (sekundär) PF-port kabel frånkopplad eller okänd status Primär funktion, flera fysiska funktioner är aktiverade, men den sekundära funktionen används inte Om utdata från kdnet.exe anger att en NIC-styrenhet som stöds är tillgänglig kan vi fortsätta.
Konfigurera måldatorn för 2PF
Använd verktyget kdnet.exe för att konfigurera felsökningsinställningarna på måldatorn för 2PF genom att följa dessa steg.
Viktigt!
Innan du använder bcdedit för att ändra startinformationen kan du tillfälligt behöva pausa Windows-säkerhetsfunktioner som BitLocker och Säker start på testdatorn. Du kan återaktivera Bit Locker och Säker start när du är klar med BCDEdit för att uppdatera startinformationen. Hantera testdatorn på rätt sätt när säkerhetsfunktionerna är inaktiverade.
Den här processen lägger till en ny fysisk funktion (PF) till nätverkskortet som anges av bus.device.function. Den nya PF kan endast användas av KDNET eftersom Inkorgsdrivrutinen för Windows har konfigurerats för att inte köras på en tillagd sekundär PF. Följ de här stegen för att lägga till en ny PF som ska användas av felsökningsenheten.
Bekräfta att felsökning är inaktiverat innan du lägger till den nya fysiska funktionen
- Använd BCDEdit-kommandot för att bekräfta att KD:n är inaktiverad på målet innan du lägger till en ny PF på nätverkskortet. Detta krävs för att säkerställa att standarddrivrutinen för NIC från leverantören laddas så att den kan användas för att lägga till den nya PF.
C:\> bcdedit /enum
...
debug No
Du kan också använda kdnet.exe utan parametrar för att se om felsökning är aktiverat. Utdata nedan visar KDNET som körs på ett system med felsökning aktiverat på ett nätverkskort. Det här är den äldre konfigurationen med lägre prestanda.
c:\Debuggers>kdnet
Network debugging is supported on the following NICs:
busparams=141.0.0, Mellanox ConnectX-4 Lx Ethernet Adapter #2, KDNET is running on this NIC.
Network debugging is supported on the following USB controllers:
busparams=128.15.0, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
busparams=0.15.0, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
busparams=128.15.1, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
busparams=0.15.1, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
- Om felsökningsvärdet är inställt på Jaanvänder du kommandot set för att inaktivera felsökning.
C:\> bcdedit.exe /debug off
C:\> bcdedit.exe /set {default} bootdebug off
C:\> bcdedit.exe /set {bootmgr} bootdebug off
- Använd kommandot
shutdown -r -t 0från en administratörs kommandotolk för att starta om.
När måldatorn har startats om och felsökningen har inaktiverats kan vi lägga till den nya fysiska funktionen.
Lägg till den nya fysiska funktionen
- Öppna en kommandotolk med administratörsrättigheter och kör följande kommando för att lägga till en andra PF. Alla värden anges med decimalvärden.
C:\KDNET> kdnet -addpf 141.0.0 198.51.100.1 50001
Succeeded adding a Pci PF on :141.0.1. Please power off or reboot the machine.
Enabling network debugging on Mellanox ConnectX-4 Lx Ethernet Adapter #2.
Manage-bde.exe not present. Bitlocker presumed disabled.
To debug this machine, run the following command on your debugger host machine.
windbg -k net:port=50001,key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Then reboot this machine by running shutdown -r -t 0 from this command prompt.
bus.dev.fun är PCI-platsporten för nätverkskortet som stöder flera PF-funktioner, så den nya PF läggs till/ansluts till den här nätverksenheten.
-addpf alternativet aktiverar automatiskt kernelfelsökning över KDNET-transport på den tillagda PF-porten.
[host name/host ip address] är värddatorns TCP/IP-adress. Använd kommandot ipconfig på värddatorn för att fastställa den här adressen.
[port number] är TCP/IP-portnumret. Du kan välja valfritt portnummer från 49152 till 65535. Det rekommenderade intervallet är mellan 50000 och 50039. Porten som du väljer öppnas för exklusiv åtkomst av felsökningsprogrammet som körs på värddatorn. Välj en unik portadress för varje mål-/värdpar som du arbetar med inom det rekommenderade intervallet 50000-50039. 50005 visas i exemplet.
Observera att -addpf också lägger till attributet NO_KDNIC till operativsystemets installation {default} loadoptions. Detta beror på att KDNIC inte längre behöver köras ovanpå KDNET.
Loadoptions = NO_KDNIC läggs till i {default} OS-taggen för att säkerställa att kdnic.sys inte tar slut på den nyligen tillagda pf (141.0.1)
Använd kommandot bcdedit för att bekräfta att NO_KDNIC har angetts.
C:\KDNET> bcdedit /enum {default}
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows Server
locale en-US
loadoptions NO_KDNIC
inherit {bootloadersettings}
recoverysequence {c23c4005d-12ae-11eb-9399-ac9840c152e7}
displaymessageoverride Recovery
recoveryenabled Yes
bootdebug No
testsigning Yes
isolatedcontext Yes
flightsigning Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c23c4005d-12ae-11eb-9399-ac9840c152e7}
nx OptOut
debug Yes
hypervisordebug No
2. Run the bcdedit /enum command to display the generated key.
```console
C:\KDNET> bcdedit /dbgsettings
busparams 141.0.1
key 2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
debugtype NET
hostip 198.51.100.1
port 50001
dhcp Yes
The operation completed successfully.
Kopiera den returnerade nyckeln till en anteckningsbok .txt-fil. I exemplet som visas har den genererade nyckeln värdet:
2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874pDu kan också använda kdnet.exe för att bekräfta att flera fysiska funktioner är aktiverade.
C:\KDNET> kdnet.exe
Network debugging is supported on the following NICs:
busparams=141.0.0, Mellanox ConnectX-4 Lx Ethernet Adapter #2, Plugged in, Primary function, multiple physical functions are enabled.
busparams=141.0.1, Mellanox ConnectX-4 Lx Ethernet Adapter, KDNET is running on this NIC, Secondary function.
Network debugging is supported on the following USB controllers:
busparams=128.15.0, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
busparams=0.15.0, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
busparams=128.15.1, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
busparams=0.15.1, Standard USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
Inaktivera brandväggen på värden
På värddatorn ska du inaktivera brandväggen för felsökningsporten.
Ansluta WinDbg till målet för kernel-felsökning
Öppna WinDbg på värddatorn. På menyn Arkiv väljer du Kernel Debug. I dialogrutan Kernel Debugging öppnar du fliken Net. Klistra in ditt portnummer och din nyckel som du sparade i anteckningsfilen .txt tidigare. Välj OK.
Du kan också starta en WinDbg-session genom att öppna ett kommandotolkfönster och ange följande kommando, där är porten du valde ovan, och är nyckeln som returnerades av kdnet.exe ovan. Klistra in nyckeln som du sparade i anteckningsfilen .txt tidigare.
windbg -k -d net:port=<YourDebugPort>,key=<YourKey>
Starta om måldatorn
När felsökningsprogrammet är anslutet startar du om måldatorn. Ett sätt att starta om datorn är att använda kommandot shutdown -r -t 0 från en administratörs kommandotolk.
När måldatorn har startats om bör felsökningsprogrammet ansluta automatiskt.
När datorn startas om tilldelar nätverkskortets inbyggda programvara en ny MAC-adress till den nyligen tillagda KDNET PF, och dbgsettings::busparams pekar på den nyligen tillagda PF.
Hitta MAC-adressen för 2PF-adaptern
Eftersom den nyligen tillagda PF är en port konfigurerad som en PCI-buss, kommer det att finnas ett nytt MAC-adressvärde som delats ut till den nyligen tillagda PF av nätverkskortets inbyggda programvara. Verktyget kdnet.exe stöder för närvarande inte visning av MAC-adressen för den tillagda 2PF.
Det finns två sätt att hitta den nya MAC-adressen:
Använd WinDbg/KD med en lokal KD-session
Kör den lokala kernel-felsökaren windbg.exe -kl på målsystemet.
Kontrollera att du har åtkomst till symbolfilen kdnet.pdb genom att köra .reload /f kdnet.dll
Kör kommandot .kdtargetmac för att hämta MAC-adressen.
kd> .kdtargetmac
Force unload of kdnet.dll
ModLoad: fffff800`18510000 fffff800`18557000 kdnet.dll
Loading symbols for fffff800`18510000 kdnet.dll -> kdnet.dll
The target machine MAC address in open-device format is: DC9840C151E8
Kör leverantörens tillhandahållna verktyg för inbyggd programvara
Ett sätt att hitta MAC-adressen är att köra verktygen för inbyggd programvara som tillhandahålls av leverantören. Kontakta NIC-leverantören för information om hur du laddar ned, installerar och använder leverantörens verktyg.
...
Base MAC: 98039baa757c 4
Hitta fältet för MAC-adress. Beräkna värdet för KDNET 2PF MAC-adress genom att sekventiellt lägga till en till den sista siffran i rot-MAC-enheten. Så för rotenheten med adressen 98039baa757cskulle KDNET 2PF-enheten ha en adress för 98039baa757d.
Återställa det tidigare konfigurationstillståndet – Ta bort den andra PCI PF
Du kan ta bort den tidigare tillagda PF från en enhet med hjälp av alternativet kdnet -removepf och det ursprungliga bus.device.function-värdet. PF kopplas från nätverkskortet och den PF-tilldelade resursen släpps av nätverkskortets inbyggda programvara.
För att ta bort KDNET PF från enheten öppnar du en kommandotolk med administratörsbehörighet och kör följande kommando.
kdnet -removepf [bus.dev.fun] [host name/host ip address] [port number]
Där bus.dev.fun är PCI-platsen för NIC-adaptern där PF ursprungligen var anslutet. Det här är samma PCI-plats som ursprungligen skickades till kdnet -addpf.
Med alternativet -removepf återaktiveras även kernelfelsökning över KDNET på den ursprungliga bus.dev.fun.
C:\KDNET> kdnet -removepf 141.0.0 198.51.100.1 50001
Succeeded removing a Pci PF on :141.0.0. Please power off or reboot the machine.
Enabling network debugging on Mellanox ConnectX-4 Lx Ethernet Adapter #2.
Manage-bde.exe not present. Bitlocker presumed disabled.
Kommandot kdnet.exe -removepf tar också bort NO_KDNIC-attributet från operativsystemets installation {default} loadoptions, eftersom KDNET aktiveras på den ursprungliga bus.dev.fun, d.v.s. dbgsettings::busparams pekar på den ursprungliga nätverksporten. Detta gör att KDNIC används igen, vilket ger en nätverksanslutning igen ovanpå KDNET.
När PF har tagits bort måste datorn startas om för att BCD-ändringarna ska tillämpas.
shutdown -r -t 0
Felsöka konfiguration av värdadapter
Kontrollera att 2PF-adaptern finns i enhetshanteraren
Du kan kontrollera att KDNET PF har lagts till genom att kontrollera att det nya nätverkskortet har en ny bus.dev.fun port i listan över Windows Device Manager-kort.
Det här diagrammet visar tre olika adaptrar, där adapter #2 är reserverad för användning av kernelfelsökaren.
Vanliga felmeddelanden – lägga till en ny PF
C:\KDNET> kdnet -addpf 28.0.0 192.168.137.1 50005
Device Name:\\.\Mlx5Util
Pci Bus:28.0.0
PCI PF har redan konfigurerats på den här porten: Error=(0x80004004) Misslyckad PF-åtgärd på felsökningsenheten. Felsökningsenheten har inte konfigurerats för KDNET.
- Lägg inte till eller ta bort en PF på rotporten där den redan är tillagd som en PF.
Vanliga felmeddelanden – ta bort en PF
C:\KDNET> kdnet -removepf 28.0.1 192.168.137.1 50005
Adapter is not active: Error=(0x80070002)
Device Name:\\.\Mlx5Util
Pci Bus:28.0.1
adaptern är inte aktiv: Error=(0x80070002) Misslyckad PF-åtgärd på felsökningsenheten. Felsökningsenheten har inte konfigurerats för KDNET-
- Använd inte en tillagd PF-port med kommandoradsparametern "-removepf/-addpf", eftersom en åtgärd på den tillagda PF-porten resulterar i ett fel (fel: Adaptern är inte aktiv på porten), eftersom inkorgsdrivrutinen för leverantörskortet har konfigurerats för att uttryckligen inte köras på en tillagd PF.
- Båda kommandoradsalternativen (-addpf/-removepf) får endast användas på rot-PCI-enheten.
C:\KDNET> kdnet -removepf 28.0.0 192.168.137.1 50005
Device Name:\\.\Mlx5Util
Pci Bus:28.0.0
Det finns ingen PCI PF att ta bort på den här porten: Error=(0x80004005) Misslyckad PF-åtgärd på felsökningsenheten. Felsökningsenheten har inte konfigurerats för KDNET-
- Om du lägger till en ny PF och sedan bestämmer dig för att ta bort den utan omstart leder det till ett fel, eftersom nätverkskortets firmware kräver omstart eller återställning av nätverkskortets hårdvara innan den kan identifiera den nyligen tillagda PF.
Vanliga felmeddelanden – BCDEdit
NO_KDNIC finns inte i BCD OS{default}-installationen.
- Vi rekommenderar inte att du använder bcdedit.exe för att ändra felsökningsenheten (dbgsettings) efter att ha lagt till en ny PF. Kommandoradsalternativen kdnet -addpf/removepf konfigurerar felsökningsenheten och lägger också till/tar automatiskt bort
NO_KDNICtoken till/från{default}::loadoptions.
Se även
Konfigurera KDNET-nätverkskärnfelsökning automatiskt
Konfigurera KDNET-nätverkskärnfelsökning manuellt
Konfigurera USB 3.0 xHCI-DBC kärnläge felavhjälpning (KDUSB)
Konfigurera USB KDNET EEM-Kernel-Mode felsökning (KDNET-EEM-USB)