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

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace