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ísico. 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.
Valor de retorno
Se a operação for bem-sucedida, a função retornará STATUS_SUCCESS.
A função pode retornar outros valores NTSTATUS .
Observações
Essa função é o equivalente a UMDF versão 2 de 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 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 WDF_READ_REGISTER_xxx e WDF_WRITE_REGISTER_funções xxx.
Um driver que chama WdfDeviceMapIoSpace deve definir a diretiva UmdfDirectHardwareAccess INF para AllowDirectHardwareAccess.
Se o driver definir a diretiva UmdfRegisterAccessMode INF para RegisterAccessUsingUserModeMapping, chamando WdfDevic O DoMapIoSpace também mapeia 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 as diretivas INF que os drivers UMDF podem usar, consulte Especificando diretivas do 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 manipulação de recursos de hardware em umde driver UMDF.
O tipo de 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 Dispositivos.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8.1 |
da Plataforma de Destino |
Universal |
versão mínima do UMDF | 2.0 |
cabeçalho | wdfdevice.h (inclua Wdf.h) |
biblioteca | WUDFx02000.lib |
de DLL |
WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |