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 |