Freigeben über


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.

Registerkarte „Details“ des Geräte-Managers.

Anmerkung

Für Windows 10, Versionen 1803 und 1809, verwendet das Eigenschaftenfeld im Geräte-Manager eine GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]