Bagikan melalui


Mengaktifkan pemetaan ulang DMA untuk driver perangkat

Untuk memastikan kompatibilitas dengan Perlindungan DMA Kernel dan Kebijakan DMAGuard , driver perangkat PCIe dapat memilih untuk melakukan pemetaan ulang Akses Memori Langsung (DMA).

Remapping DMA untuk driver perangkat melindungi terhadap serangan DMA berbahaya dan kerusakan memori, serta memberikan tingkat kompatibilitas perangkat yang lebih tinggi. Selain itu, perangkat dengan driver yang kompatibel dengan remapping DMA dapat memulai dan melakukan DMA terlepas dari status layar kunci.

Pada sistem yang mengaktifkan perlindungan DMA Kernel, kebijakan DMAGuard mungkin memblokir perangkat dengan driver yang tidak kompatibel dengan DMA, terhubung ke port PCIe eksternal/yang terekspos (misalnya, M.2, Thunderbolt), berdasarkan nilai kebijakan yang ditetapkan oleh administrator sistem.

Persyaratan driver untuk mengaktifkan dan memilih melakukan remapping DMA

Driver melakukan DMA menggunakan antarmuka berikut:

Untuk menyesuaikan kebijakan pemetaan ulang DMA untuk driver Anda, tambahkan arahan INF. Ada dua metode yang mungkin: mekanisme per perangkat (direkomendasikan dan disukai) dan mekanisme per driver (warisan).

Mekanisme pilih masuk per perangkat

Untuk Windows 24H2 dan versi yang lebih baru, gunakan metode per perangkat ini. Penerimaan per perangkat menggantikan metode lama per driver, jika ada (misalnya, kunci DmaRemappingCompatible diabaikan jika RemappingSupported dinyalakan).

Tambahkan arahan INF seperti berikut ini ke bagian enumerasi perangkat:

[MyDriver_Device.NT.HW]
AddReg=DMA_Remapping_OptIn_AddReg

[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1

Nilai yang valid untuk DMA Management\RemappingSupported:

Nilai Arti
0 Menolak. Menunjukkan perangkat dan driver tidak kompatibel dengan remapping DMA.
1 Ikut serta. Menunjukkan perangkat dan driver sepenuhnya kompatibel dengan pemetaan ulang DMA.
Tidak ada kunci registri Biarkan sistem menentukan kebijakan.

Secara opsional, Anda dapat menambahkan RemappingFlags untuk lebih mengontrol perilaku:

[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1
HKR,"DMA Management","RemappingFlags",0x00010001,0x00000001

Nilai yang valid untuk DMA Management\RemappingFlags:

Nilai Arti
0 Jika RemappingSupported adalah 1, ikut serta tanpa syarat.
1 Jika RemappingSupported adalah 1, ikut serta tetapi hanya ketika satu atau beberapa kondisi berikut terpenuhi: A. Perangkat adalah perangkat eksternal (misalnya, Thunderbolt); B. Verifikasi DMA diaktifkan di Pemverifikasi Driver
Tidak ada kunci registri Sama seperti nilai 0.

Kunci registri ini muncul di bawah pohon enumerasi: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device instance path>\Device Parameters\DMA Management

Mekanisme keikutsertaan sekali pengemudi

Hanya gunakan metode per driver ini untuk versi Windows hingga Windows 11 23H2. Disarankan untuk menggunakan metode per perangkat.

Tambahkan arahan INF seperti berikut ini ke bagian penginstalan layanan:

[MyServiceInstall_AddReg]
HKR,Parameters,DmaRemappingCompatible,0x00010001,1    ; where 1 = opt-in

Nilai yang valid untuk DmaRemappingCompatible:

Nilai Arti
0 Menolak. Menunjukkan bahwa driver Anda tidak kompatibel dengan remapping DMA.
1 Ikut serta. Menunjukkan bahwa driver Anda sepenuhnya kompatibel dengan remapping DMA.
2 Berpartisipasi, tetapi hanya jika satu atau lebih dari kondisi berikut terpenuhi: A. Perangkat adalah perangkat eksternal (misalnya, Thunderbolt); B. Verifikasi DMA diaktifkan di Pemverifikasi Pengandar.
3 Pendaftaran
Tidak ada kunci registri Biarkan sistem menentukan kebijakan.

Saat menguji driver Anda, aktifkan Driver Verifier. Untuk tujuan pengujian di bawah Driver Verifier, nilai arahan INF untuk memilih perangkat eksternal dipromosikan menjadi 1.

Kunci registri muncul di bawah pohon penginstalan layanan: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<driver name>\Parameters.

Peringatan

Remapping DMA tidak didukung untuk driver perangkat grafis.

Memvalidasi bahwa remapping DMA diaktifkan untuk instans driver perangkat tertentu

Gunakan build Windows terbaru dengan VT-d/AMD-Vi diaktifkan untuk menguji fungsionalitas driver pada sistem Intel x64 dan AMD64.

Untuk memeriksa apakah driver tertentu memilih melakukan pemetaan ulang DMA, lihat di Device Manager, pada tab Detail perangkat, untuk nilai yang sesuai dengan properti kebijakan pemetaan ulang DMA. Driver dapat mengkueri properti DEVPKEY_Device_DmaRemappingPolicy untuk menentukan kemampuan remapping DMA perangkat. Lihat nilai pengembalian potensial di halaman tersebut, dan perhatikan bahwa nilai yang dikembalikan ini tidak sama dengan nilai untuk DmaRemappingCompatible yang tercantum di bagian sebelumnya.

Tab Rincian Manajer Perangkat.

Nota

Untuk Windows 10, versi 1803 dan 1809, bidang properti di Manajer Perangkat menggunakan GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]