Compartilhar via


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

Consulte também

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace