Freigeben über


DXGKCB_MAP_MEMORY Rückruffunktion (dispmprt.h)

Die DxgkCbMapMemory Funktion ordnet einen Bereich von übersetzten physischen Adressen (zugeordnet einer Speicherressource, die einem Anzeigeadapter zugeordnet 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 einen Anzeigeadapter darstellt. Der Display-Miniporttreiber hat diesen Handle zuvor im DeviceHandle Member der DXGKRNL_INTERFACE-Struktur abgerufen, die an DxgkDdiStartDeviceübergeben wurde.

[in] TranslatedAddress

Die basis übersetzte physische Adresse des Speicherbereichs, der zugeordnet werden soll. Der Display-Miniporttreiber hat diese Adresse zuvor durch Aufrufen von DxgkCbGetDeviceInformationabgerufen.

[in] Length

Die Größe des zuzuordnenden Bereichs in Bytes.

[in] InIoSpace

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

[in] MapToUserMode

Ein boolescher Wert, der angibt, ob der Bereich dem Benutzermodusbereich oder Systembereich zugeordnet ist. Wenn TRUE, wird der Bereich dem virtuellen Adressraum (Benutzermodus) des aktuellen Prozesses zugeordnet. Wenn FALSE-, wird der Bereich im Systembereich zugeordnet. Wenn InIoSpace-TRUEist, 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. Der Zugriff auf den zugeordneten Bereich hängt von den Werten InIoSpace und MapToUserMode-ab. In der folgenden Tabelle sind die verschiedenen Methoden zusammengefasst, auf die der zugeordnete Bereich zugegriffen wird.

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

Rückgabewert

DxgkCbMapMemory- gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird eine der fehlercodes zurückgegeben, die in ntstatus.hdefiniert sind.

Bemerkungen

Der PHYSICAL_ADDRESS Datentyp wird in Ntdef.hdefiniert.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Zielplattform- Desktop
Header- dispmprt.h (include Dispmprt.h)
IRQL- PASSIVE_LEVEL

Siehe auch

MEMORY_CACHING_TYPE