DXGKCB_MAP_MEMORY funzione di callback (dispmprt.h)

La funzione DxgkCbMapMemory esegue il mapping di un intervallo di indirizzi fisici tradotti (associati a una risorsa di memoria assegnata a una scheda di visualizzazione) nello spazio di sistema o nello spazio degli indirizzi virtuali di un processo in modalità utente.

Sintassi

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

Parametri

[in] DeviceHandle

Handle che rappresenta una scheda di visualizzazione. Il driver miniport di visualizzazione ottenuto in precedenza questo handle nel membro DeviceHandle della struttura DXGKRNL_INTERFACE passata a DxgkDdiStartDevice.

[in] TranslatedAddress

Indirizzo fisico convertito di base dell'intervallo di memoria di cui eseguire il mapping. Il driver miniport di visualizzazione ottenuto in precedenza questo indirizzo chiamando DxgkCbGetDeviceInformation.

[in] Length

Dimensione, in byte, dell'intervallo di cui eseguire il mapping.

[in] InIoSpace

Valore booleano che specifica se l'intervallo si trova nello spazio di I/O (TRUE) o nello spazio di memoria (FALSE).

[in] MapToUserMode

Valore booleano che specifica se l'intervallo viene mappato nello spazio in modalità utente o nello spazio di sistema. Se TRUE, l'intervallo viene mappato nello spazio indirizzi virtuale (modalità utente) del processo corrente. Se FALSE, l'intervallo viene mappato nello spazio di sistema. Se InIoSpace è TRUE, questo parametro viene ignorato.

[in] CacheType

Enumeratore MEMORY_CACHING_TYPE che specifica il comportamento di memorizzazione nella cache dell'intervallo mappato.

[out] VirtualAddress

Puntatore a una variabile che riceve l'indirizzo dell'inizio dell'intervallo mappato. La modalità di accesso all'intervallo mappato dipende dai valori di InIoSpace e MapToUserMode. Nella tabella seguente vengono riepilogati i diversi modi in cui si accede all'intervallo mappato.

Valore di InIoSpace MapToUserMode è FALSE MapToUserMode è TRUE
FALSE READ_REGISTER_X WRITE_REGISTER_X Il codice in modalità utente esegue l'accesso normale alla memoria.
true READ_PORT_X WRITE_PORT_X Non è possibile.

Valore restituito

DxgkCbMapMemory restituisce STATUS_SUCCESS se ha esito positivo. In caso contrario, restituisce uno dei codici di errore definiti in Ntstatus.h.

Commenti

Il tipo di dati PHYSICAL_ADDRESS è definito in Ntdef.h.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Vedi anche

MEMORY_CACHING_TYPE