共用方式為


DXGKCB_MAP_MEMORY回呼函式 (dispmprt.h)

DxgkCbMapMemory 函式會將轉譯實體位址的範圍(與指派給顯示適配卡的記憶體資源相關聯)對應到系統空間或使用者模式進程的虛擬位址空間。

語法

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
)
{...}

參數

[in] DeviceHandle

表示顯示配接器的句柄。 顯示迷你埠驅動程式先前已在傳遞 至 dxgkDdiStartDeviceDXGKRNL_INTERFACE 結構的 DeviceHandle 成員中取得此句柄。

[in] TranslatedAddress

要對應之內存範圍的基底轉譯實體位址。 顯示迷你埠驅動程式先前已呼叫 DxgkCbGetDeviceInformation來取得此位址。

[in] Length

要對應之範圍的大小,以位元組為單位。

[in] InIoSpace

布爾值,指定範圍在 I/O 空間(TRUE) 或記憶體空間 (FALSE)。

[in] MapToUserMode

布爾值,指定範圍是否對應至使用者模式空間或系統空間。 如果 TRUE,範圍會對應至目前進程的 (user-mode) 虛擬位址空間。 如果 FALSE,範圍就會對應至系統空間。 如果 InIoSpaceTRUE,則會忽略此參數。

[in] CacheType

指定對應範圍快取行為的 MEMORY_CACHING_TYPE 列舉值。

[out] VirtualAddress

接收對應範圍開頭位址之變數的指標。 存取對應範圍的方式取決於 InIoSpaceMapToUserMode的值。 下表摘要說明存取對應範圍的不同方式。

InIoSpace 的值 MapToUserMode 為 FALSE MapToUserMode 為 TRUE
READ_REGISTER_X WRITE_REGISTER_X 使用者模式程式代碼會執行一般記憶體存取。
READ_PORT_X WRITE_PORT_X 不可能。

傳回值

DxgkCbMapMemory 會在成功時傳回STATUS_SUCCESS。 否則,它會傳回 Ntstatus.h中定義的其中一個錯誤碼。

言論

PHYSICAL_ADDRESS數據類型定義於 Ntdef.h中。

要求

要求 價值
最低支援的用戶端 Windows Vista
目標平臺 桌面
標頭 dispmprt.h (包括 Dispmprt.h)
IRQL PASSIVE_LEVEL

另請參閱

MEMORY_CACHING_TYPE