DXGKCB_MAP_MEMORY fungsi panggilan balik (dispmprt.h)

Fungsi DxgkCbMapMemory memetakan berbagai alamat fisik yang diterjemahkan (terkait dengan sumber daya memori yang ditetapkan ke adaptor tampilan) ke ruang sistem atau ruang alamat virtual proses mode pengguna.

Sintaks

DXGKCB_MAP_MEMORY DxgkcbMapMemory;

NTSTATUS DxgkcbMapMemory(
  [in]  HANDLE DeviceHandle,
  [in]  PHYSICAL_ADDRESS TranslatedAddress,
  [in]  ULONG Length,
  [in]  BOOLEAN InIoSpace,
  [in]  BOOLEAN MapToUserMode,
  [in]  MEMORY_CACHING_TYPE CacheType,
  [out] PVOID *VirtualAddress
)
{...}

Parameter

[in] DeviceHandle

Handel yang mewakili adaptor tampilan. Driver miniport tampilan sebelumnya memperoleh handel ini di anggota DeviceHandle dari struktur DXGKRNL_INTERFACE yang diteruskan ke DxgkDdiStartDevice.

[in] TranslatedAddress

Alamat fisik dasar yang diterjemahkan dari rentang memori yang akan dipetakan. Driver miniport tampilan sebelumnya mendapatkan alamat ini dengan memanggil DxgkCbGetDeviceInformation.

[in] Length

Ukuran, dalam byte, dari rentang yang akan dipetakan.

[in] InIoSpace

Nilai Boolean yang menentukan apakah rentang berada di ruang I/O (TRUE) atau ruang memori (FALSE).

[in] MapToUserMode

Nilai Boolean yang menentukan apakah rentang dipetakan ke ruang mode pengguna atau ruang sistem. Jika TRUE, rentang dipetakan ke ruang alamat virtual (mode pengguna) dari proses saat ini. Jika FALSE, rentang dipetakan ke dalam ruang sistem. Jika InIoSpaceTRUE, parameter ini diabaikan.

[in] CacheType

Enumerator MEMORY_CACHING_TYPE yang menentukan perilaku penembolokan rentang yang dipetakan.

[out] VirtualAddress

Penunjuk ke variabel yang menerima alamat awal rentang yang dipetakan. Cara rentang yang dipetakan diakses tergantung pada nilai InIoSpace dan MapToUserMode. Tabel berikut ini meringkas berbagai cara agar rentang yang dipetakan diakses.

Nilai InIoSpace MapToUserMode adalah FALSE MapToUserMode adalah TRUE
FALSE READ_REGISTER_X WRITE_REGISTER_X Kode mode pengguna melakukan akses memori biasa.
TRUE READ_PORT_X WRITE_PORT_X Tidak mungkin.

Menampilkan nilai

DxgkCbMapMemory mengembalikan STATUS_SUCCESS jika berhasil. Jika tidak, ia mengembalikan salah satu kode kesalahan yang ditentukan dalam Ntstatus.h.

Keterangan

Jenis data PHYSICAL_ADDRESS ditentukan dalam Ntdef.h.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header dispmprt.h (termasuk Dispmprt.h)
IRQL PASSIVE_LEVEL

Lihat juga

MEMORY_CACHING_TYPE