Função WdfDeviceMapIoSpace (wdfdevice.h)
[Aplica-se somente ao UMDF]
A função WdfDeviceMapIoSpace mapeia o intervalo de endereços físico fornecido para o espaço de endereço do sistema e retorna um endereço pseudo-base.
Sintaxe
NTSTATUS WdfDeviceMapIoSpace(
[in] WDFDEVICE Device,
[in] PHYSICAL_ADDRESS PhysicalAddress,
[in] SIZE_T NumberOfBytes,
[in] MEMORY_CACHING_TYPE CacheType,
[out] PVOID *PseudoBaseAddress
);
Parâmetros
[in] Device
Um identificador para um objeto de dispositivo de estrutura.
[in] PhysicalAddress
Especifica o endereço físico inicial de 64 bits do intervalo de E/S a ser mapeado.
[in] NumberOfBytes
Especifica um valor maior que zero, indicando o número de bytes a serem mapeados.
[in] CacheType
Especifica um valor MEMORY_CACHING_TYPE , que indica o atributo de cache a ser usado para mapear o intervalo de endereços físicos. O tipo de enumeração MEMORY_CACHING_TYPE é definido em Wdfdevice.h.
[out] PseudoBaseAddress
O endereço de um local que recebe um ponteiro para o endereço pseudo-base.
Retornar valor
Se a operação for bem-sucedida, a função retornará STATUS_SUCCESS.
A função pode retornar outros valores NTSTATUS.
Comentários
Essa função é a versão 2 da UMDF equivalente a IWDFDevice3::MapIoSpace.
Um driver deve chamar essa função durante a inicialização do dispositivo se receber recursos traduzidos do tipo CmResourceTypeMemory em uma estrutura de CM_PARTIAL_RESOURCE_DESCRIPTOR . WdfDeviceMapIoSpace mapeia o endereço físico retornado na lista de recursos para um endereço gerenciado por estrutura chamado de endereço pseudo-base.
Em seguida, o driver pode usar o endereço pseudo-base para acessar registros de dispositivo com funções WDF_READ_REGISTER_Xxx e WDF_WRITE_REGISTER_Xxx .
Um driver que chama WdfDeviceMapIoSpace deve definir a diretiva INF UmdfDirectHardwareAccess como AllowDirectHardwareAccess.
Se o driver definir a diretiva UMdfRegisterAccessMode INF como RegisterAccessUsingUserModeMapping, chamar WdfDeviceMapIoSpace também mapeará o intervalo de endereços físicos fornecido para um intervalo de endereços base no modo de usuário que o driver pode acessar posteriormente chamando WdfDeviceGetHardwareRegisterMappedAddress.
Para obter mais informações sobre diretivas INF que os drivers UMDF podem usar, consulte Especificando diretivas WDF em arquivos INF.
Para obter mais informações sobre a análise de recursos de hardware a partir do UMDF versão 2, consulte Manipulando recursos de hardware em um driver UMDF.
O tipo PHYSICAL_ADDRESS é definido em Wudfwdm.h, da seguinte maneira:
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
Para obter um exemplo que mostra como um driver localiza e mapeia recursos de registro mapeados pela memória, consulte Leitura e gravação em registros de dispositivo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8.1 |
Plataforma de Destino | Universal |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfdevice.h (inclua Wdf.h) |
Biblioteca | WUDFx02000.lib |
DLL | WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de