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 neuzuordnungskompatiblen Treibern DMA unabhängig vom Sperrbildschirmstatus starten und ausführen.
Bei aktivierten Kernel-DMA-Schutzsystemen kann die DMAGuard-Richtlinie Geräte mit DMA-Remapping-inkompatiblen Treibern blockieren, die mit den freigelegten externen / PCIe-Ports (z. B. M.2, Thunderbolt) verbunden sind, abhängig vom vom Systemadministrator festgelegten Richtlinienwert.
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. Es gibt zwei mögliche Methoden: einen Mechanismus pro Gerät (empfohlen und bevorzugt) und einen Mechanismus pro Treiber (Legacy).
Aktivierungsmechanismus pro Gerät
Verwenden Sie diese Methode pro Gerät für Windows 24H2 und spätere Versionen. Das Pro-Gerät-Opt-In setzt die veraltete Methode pro Treiber außer Kraft, wenn vorhanden, z. B. wird der DmaRemappingCompatible-Schlüssel 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:
Wert | Bedeutung |
---|---|
0 | Abmelden. Gibt an, dass das Gerät und der Treiber nicht mit der DMA-Neuzuordnung kompatibel sind. |
1 | Aktivieren. Gibt an, dass das Gerät und der Treiber vollständig mit der DMA-Neuzuordnung kompatibel sind. |
Kein Registrierungsschlüssel | Lassen Sie das System die Richtlinie bestimmen. |
Optional können Sie RemappingFlags hinzufügen, 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:
Wert | Bedeutung |
---|---|
0 | Wenn RemappingSupported 1 ist, stimmen Sie bedingungslos zu. |
1 | Wenn RemappingSupported 1 ist, melden Sie sich aber nur an, wenn mindestens eine der folgenden Bedingungen erfüllt ist: A. Das Gerät ist ein externes Gerät (z. B. Thunderbolt); B. Die DMA-Überprüfung ist in der Treiberüberprüfung aktiviert. |
Kein Registrierungsschlüssel | Identisch mit dem Wert 0. |
Diese Registrierungsschlüssel werden unter der Enumerationsstruktur 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 empfohlen, die pro Gerät Methode zu verwenden.
Fügen Sie eine INF-Direktive, wie die folgende, zum Abschnitt "Dienstinstallation" hinzu:
[MyServiceInstall_AddReg]
HKR,Parameters,DmaRemappingCompatible,0x00010001,1 ; where 1 = opt-in
Gültige Werte für DmaRemappingCompatible:
Wert | Bedeutung |
---|---|
0 | Abmelden. Gibt an, dass Ihr Treiber nicht mit der DMA-Neuzuordnung kompatibel ist. |
1 | Einwilligung geben. 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. Das Gerät ist ein externes Gerät (z. B. Thunderbolt); B. Die DMA-Überprüfung ist in der Treiberüberprüfung aktiviert. |
3 | Einwilligen |
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. Sehen Sie sich mögliche Rückgabewerte auf dieser Seite an, und beachten Sie, dass diese Rückgabewerte nicht dieselben sind wie die Werte für DmaRemappingCompatible, wie im vorherigen Abschnitt aufgeführt.
Anmerkung
Für Windows 10, Versionen 1803 und 1809, verwendet das Eigenschaftenfeld im Geräte-Manager eine GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]