DXGKCB_MAP_MEMORY função de retorno de chamada (dispmprt.h)
A função DxgkCbMapMemory mapeia um intervalo de endereços físicos traduzidos (associados a um recurso de memória atribuído a um adaptador de exibição) no espaço do sistema ou no espaço de endereço virtual de um processo de modo de usuário.
Sintaxe
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
)
{...}
Parâmetros
[in] DeviceHandle
Um identificador que representa um adaptador de exibição. O driver de miniporto de exibição obteve anteriormente esse identificador no deviceHandle membro da estrutura DXGKRNL_INTERFACE que foi passada para DxgkDdiStartDevice.
[in] TranslatedAddress
O endereço físico traduzido base do intervalo de memória a ser mapeado. O driver de miniporto de exibição obteve esse endereço anteriormente chamando DxgkCbGetDeviceInformation.
[in] Length
O tamanho, em bytes, do intervalo a ser mapeado.
[in] InIoSpace
Um valor booliano que especifica se o intervalo está no espaço de E/S (TRUE) ou no espaço de memória (false).
[in] MapToUserMode
Um valor booliano que especifica se o intervalo é mapeado para espaço no modo de usuário ou espaço do sistema. Se VERDADEIRO, o intervalo será mapeado para o espaço de endereço virtual (modo usuário) do processo atual. Se FALSE, o intervalo será mapeado para o espaço do sistema. Se inIoSpace for VERDADEIRO, esse parâmetro será ignorado.
[in] CacheType
Um enumerador MEMORY_CACHING_TYPE que especifica o comportamento de cache do intervalo mapeado.
[out] VirtualAddress
Um ponteiro para uma variável que recebe o endereço do início do intervalo mapeado. A maneira como o intervalo mapeado é acessado depende dos valores de InIoSpace e MapToUserMode . A tabela a seguir resume as diferentes maneiras pelas quais o intervalo mapeado é acessado.
Valor do InIoSpace | MapToUserMode é FALSE | MapToUserMode é TRUE |
---|---|---|
FALSO | READ_REGISTER_X WRITE_REGISTER_X | O código do modo de usuário executa o acesso à memória comum. |
VERDADEIRO | READ_PORT_X WRITE_PORT_X | Não é possível. |
Valor de retorno
DxgkCbMapMemory retornará STATUS_SUCCESS se tiver êxito. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h.
Observações
O tipo de dados PHYSICAL_ADDRESS é definido em Ntdef.h.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista |
da Plataforma de Destino | Área de trabalho |
cabeçalho | dispmprt.h (inclua Dispmprt.h) |
IRQL | PASSIVE_LEVEL |