DXGKCB_MAP_MEMORY Rückruffunktion (dispmprt.h)

Die DxgkCbMapMemory-Funktion ordnet einen Bereich übersetzter physischer Adressen (die einer Speicherressource zugeordnet sind, die einer Grafikkarte zugewiesen ist) dem Systembereich oder dem virtuellen Adressraum eines Benutzermodusprozesses zu.

Syntax

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

Ein Handle, das eine Grafikkarte darstellt. Der Anzeige-Miniporttreiber hat dieses Handle zuvor im DeviceHandle-Member der DXGKRNL_INTERFACE-Struktur abgerufen, die an DxgkDdiStartDevice übergeben wurde.

[in] TranslatedAddress

Die basisbasierte übersetzte physische Adresse des zu zuordnenden Speicherbereichs. Der Anzeige-Miniporttreiber hat diese Adresse zuvor durch Aufrufen von DxgkCbGetDeviceInformation abgerufen.

[in] Length

Die Größe des zu zuordnenden Bereichs in Bytes.

[in] InIoSpace

Ein boolescher Wert, der angibt, ob sich der Bereich im E/A-Raum (TRUE) oder im Arbeitsspeicher (FALSE) befindet.

[in] MapToUserMode

Ein boolescher Wert, der angibt, ob der Bereich dem Benutzermodus- oder Systembereich zugeordnet wird. Bei TRUE wird der Bereich dem virtuellen Adressraum (Benutzermodus) des aktuellen Prozesses zugeordnet. Bei FALSE wird der Bereich dem Systembereich zugeordnet. Wenn InIoSpaceAUF TRUE festgelegt ist, wird dieser Parameter ignoriert.

[in] CacheType

Ein MEMORY_CACHING_TYPE Enumerator, der das Zwischenspeicherungsverhalten des zugeordneten Bereichs angibt.

[out] VirtualAddress

Ein Zeiger auf eine Variable, die die Adresse des Anfangs des zugeordneten Bereichs empfängt. Wie auf den zugeordneten Bereich zugegriffen wird, hängt von den Werten von InIoSpace und MapToUserMode ab. In der folgenden Tabelle werden die verschiedenen Arten des Zugriffs auf den zugeordneten Bereich zusammengefasst.

Wert von InIoSpace MapToUserMode ist FALSE. MapToUserMode ist TRUE.
FALSE READ_REGISTER_X WRITE_REGISTER_X Benutzermoduscode führt gewöhnlichen Speicherzugriff aus.
true READ_PORT_X WRITE_PORT_X Nicht möglich.

Rückgabewert

DxgkCbMapMemory gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in Ntstatus.h definierten Fehlercodes zurückgegeben.

Hinweise

Der PHYSICAL_ADDRESS Datentyp ist in Ntdef.h definiert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

MEMORY_CACHING_TYPE