Função NdisMMapIoSpace (ndis.h)
NdisMMapIoSpace mapeia um determinado intervalo "físico" relativo de barramento de RAM do dispositivo ou se registra em um intervalo virtual de espaço no sistema.
Sintaxe
NDIS_STATUS NdisMMapIoSpace(
[out] PVOID *VirtualAddress,
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_PHYSICAL_ADDRESS PhysicalAddress,
[in] UINT Length
);
Parâmetros
[out] VirtualAddress
Ponteiro para uma variável fornecida pelo chamador que será definida como o endereço virtual convertido se a chamada for bem-sucedida.
[in] MiniportAdapterHandle
Especifica a entrada do identificador para MiniportInitializeEx.
[in] PhysicalAddress
Especifica o endereço físico base relativo ao barramento do intervalo de memória do dispositivo a ser mapeado.
[in] Length
Especifica o número de bytes a serem mapeados.
Valor de retorno
NdisMMapIoSpace pode retornar qualquer um dos seguintes valores de status:
Código de retorno | Descrição |
---|---|
|
O intervalo de memória do dispositivo foi mapeado com êxito para que o valor em VirtualAddress seja válido e o intervalo mapeado tenha sido reivindicado no registro da NIC. |
|
Uma tentativa de reivindicar o intervalo de memória do dispositivo no registro falhou, possivelmente porque outro driver já reivindicou o intervalo para seu dispositivo. NdisMMapIoSpace registra um erro se isso ocorrer. |
|
A memória não pôde ser mapeada ou não foi possível alocar memória virtual suficiente. |
|
O tipo de barramento ou o número do barramento está fora de alcance ou o PhysicalAddress e Length eram inválidos (possivelmente não dentro do espaço de E/S da plataforma atual). |
Observações
Essa função é chamada por drivers de NICs que têm memória a bordo ou um banco de registros de dispositivo que aparecem no espaço de E/S do host. Por exemplo, o driver de uma NIC que usa chamadas PIO NdisMMapIoSpace.
Uma chamada bem-sucedida para NdisMMapIoSpace declara recursos de hardware no registro para a NIC do driver. Consequentemente, apenas funções MiniportInitializeEx chamam NdisMMapIoSpace.
NdisMMapIoSpace define a variável em VirtualAddress para NULL se não retornar NDIS_STATUS_SUCCESS.
MiniportInitializeEx obtém o valor PhysicalAddress da chave de registro parâmetros de do driver ou chamando uma função de configuração de NdisXxx específica do barramento. O intervalo de endereços físico fornecido deve estar dentro do espaço de E/S da plataforma atual. É um erro de programação chamar NdisMMapIoSpace com um endereço de memória física do host.
Um driver de miniporto deve chamar o recíproco NdisMUnmapIoSpace para liberar sua declaração sobre os recursos do sistema se MiniportInitializeEx posteriormente não inicializar uma NIC, se uma NIC for removida do computador e/ou quando o driver estiver descarregando.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisMMapIoSpace (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisMMapIoSpace (NDIS 5.1)) no Windows XP. |
da Plataforma de Destino | Universal |
cabeçalho | ndis.h (inclua Ndis.h) |
biblioteca | Ndis.lib |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | Irql_Miniport_Driver_Function(ndis), NdisMMapIoSpace(ndis) |