DMA-Neuzuordnung für Gerätetreiber aktivieren
Um die Kompatibilität mit Kernel-DMA-Schutz- und DMAGuard-Richtliniezu gewährleisten, können PCIe-Gerätetreiber die Neuzuordnung von Direct Memory Access (DMA) aktivieren.
Die DMA-Neuzuordnung für Gerätetreiber schützt vor Speicherbeschädigungen und böswilligen DMA-Angriffen und bietet eine höhere Kompatibilitätsstufe für Geräte. Darüber hinaus können Geräte mit DMA-Remapping-kompatiblen Treibern DMA-Vorgänge unabhängig vom Status des Sperrbildschirms starten und ausführen.
Bei Systemen mit aktiviertem Kernel-DMA-Schutz kann die DMAGuard-Richtlinie Geräte mit DMA-Remapping-inkompatiblen Treibern blockieren, die mit externen/zugänglichen PCIe-Ports (z. B. M.2, Thunderbolt™) verbunden sind, abhängig vom Wert der Richtlinie, den der Systemadministrator festgelegt hat.
Treiberanforderungen für das Aktivieren und die Einwilligung zu DMA-Neuzuordnung
Treiber führen DMA mithilfe der folgenden Schnittstellen aus:
Um die DMA-Neuzuordnungsrichtlinie für Ihren Treiber anzupassen, fügen Sie eine INF-Direktive hinzu. Hierfür gibt es zwei Methoden: eine Methode pro Gerät (dringend empfohlen und bevorzugt) und eine Methode pro Treiber (veraltet).
Aktivierungsmechanismus pro Gerät
Für Windows 24H2 und höher verwenden Sie bitte diese Methode pro Gerät. Beachten Sie, dass dieses gerätebezogene Opt-In die Legacy-Methode pro Treiber vollständig außer Kraft setzt (d. h. der DmaRemappingCompatible-Schlüssel wird ignoriert, wenn RemappingSupported festgelegt ist).
Fügen Sie eine INF-Direktive hinzu, z. B. folgendes zum Abschnitt "Geräteaufzählung":
[MyDriver_Device.NT.HW]
AddReg=DMA_Remapping_OptIn_AddReg
[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1
Gültige Werte für DMA Management\RemappingSupported sind:
Wert | Bedeutung |
---|---|
0 | Abmelden. Dies gibt an, dass das Gerät und der Treiber mit der DMA-Neuzuordnung nicht kompatibel sind. |
1 | Aktivieren. Dies gibt an, dass das Gerät und der Treiber vollständig mit dem DMA-Remapping kompatibel sind. |
Kein Registrierungsschlüssel | Lassen Sie das System die Richtlinie bestimmen. |
Optional fügen Sie RemappingFlags hinzu, um das Verhalten weiter zu steuern:
[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1
HKR,"DMA Management","RemappingFlags",0x00010001,0x00000001
Gültige Werte für DMA Management\RemappingFlags sind:
Wert | Bedeutung |
---|---|
0 | Wenn RemappingSupported 1 ist, nehmen Sie bedingungslos teil. |
1 | Wenn RemappingSupported 1 ist, melden Sie sich an, aber nur, wenn eine oder mehrere der folgenden Bedingungen erfüllt sind: A. Wenn es sich bei dem Gerät um ein externes Gerät handelt (z. B. Thunderbolt); B. Wenn die DMA-Überprüfung in der Treiberüberprüfung aktiviert ist. |
Kein Registrierungsschlüssel | Identisch mit dem Wert 0. |
Diese Registrierungsschlüssel werden unter dem Enumerationsbaum angezeigt: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device instance path>\Device Parameters\DMA Management
Opt-In-Mechanismus für einzelne Treiber
Verwenden Sie diese Treibermethode nur für Windows-Versionen bis Windows 11 23H2. Es wird dringend empfohlen, die Pro-Gerät-Methode zu verwenden, wie obenbeschrieben.
Fügen Sie eine INF-Direktive wie zum Beispiel die folgende zum Abschnitt "Dienstinstallation" hinzu.
[MyServiceInstall_AddReg]
HKR,Parameters,DmaRemappingCompatible,0x00010001,1 ; where 1 = opt-in
Gültige Werte für DmaRemappingCompatible sind:
Wert | Bedeutung |
---|---|
0 | Abmelden. Dies gibt an, dass ihr Treiber nicht mit der DMA-Neuzuordnung kompatibel ist. |
1 | Aktivieren. Dies gibt an, dass ihr Treiber vollständig mit der DMA-Neuzuordnung kompatibel ist. |
2 | Melden Sie sich an, aber nur, wenn eine oder mehrere der folgenden Bedingungen erfüllt sind: A. Wenn es sich bei dem Gerät um ein externes Gerät handelt (z. B. Thunderbolt); B. Wenn die DMA-Überprüfung in der Treiberüberprüfung aktiviert ist. |
3 | Abonnieren |
Kein Registrierungsschlüssel | Lassen Sie das System die Richtlinie bestimmen. |
Aktivieren Sie beim Testen des Treibers die Treiberüberprüfung. Für Testzwecke unter "Driver Verifier" wird der Wert der INF-Direktive für die Auswahl externer Geräte auf 1 heraufgestuft.
Der Registrierungsschlüssel wird unter der Dienstinstallationsstruktur angezeigt: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<driver name>\Parameters
.
Warnung
Die DMA-Neuzuordnung wird für Grafikgerätetreiber nicht unterstützt.
Überprüfen, dass die DMA-Neuzuordnung für eine bestimmte Gerätetreiberinstanz aktiviert ist
Verwenden Sie den neuesten Windows-Build mit VT-d/AMD-Vi, mit dem Treiberfunktionen auf Intel x64- und AMD64-Systemen getestet werden können.
Um zu überprüfen, ob sich ein bestimmter Treiber für die DMA-Neuzuordnung entschieden hat, suchen Sie im Geräte-Manager auf der Registerkarte Details des Geräts nach den Werten, die der DMA-Neuzuordnungsrichtlinieneigenschaft entsprechen. Ein Treiber kann die Eigenschaft DEVPKEY_Device_DmaRemappingPolicy abfragen, um die DMA-Neuzuordnungsfähigkeit des Geräts zu ermitteln. Mögliche Rückgabewerte auf dieser Seite ansehen und beachten Sie, dass diese Rückgabewerte nicht mit den Werten für DmaRemappingCompatible aus dem vorherigen Abschnitt übereinstimmen.
Anmerkung
Für Windows 10, Versionen 1803 und 1809, verwendet das Eigenschaftenfeld im Geräte-Manager eine GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]