Compartir a través de


Función NdisMMapIoSpace (ndis.h)

NdisMMapIoSpace asigna un intervalo "físico" relativo al bus determinado de ram del dispositivo o se registra en un intervalo virtual de espacio del sistema.

Sintaxis

NDIS_STATUS NdisMMapIoSpace(
  [out] PVOID                 *VirtualAddress,
  [in]  NDIS_HANDLE           MiniportAdapterHandle,
  [in]  NDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in]  UINT                  Length
);

Parámetros

[out] VirtualAddress

Puntero a una variable proporcionada por el autor de la llamada que se establece en la dirección virtual convertida si la llamada se realiza correctamente.

[in] MiniportAdapterHandle

Especifica la entrada de identificador para MiniportInitializeEx.

[in] PhysicalAddress

Especifica la dirección física base relativa al bus del intervalo de memoria del dispositivo que se va a asignar.

[in] Length

Especifica el número de bytes que se van a asignar.

Valor devuelto

NdisMMapIoSpace puede devolver cualquiera de los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
El intervalo de memoria del dispositivo se asignó correctamente, por lo que el valor de VirtualAddress es válido y el intervalo asignado se ha reclamado en el registro para la NIC.
NDIS_STATUS_RESOURCE_CONFLICT
Error al intentar reclamar el intervalo de memoria del dispositivo en el registro, posiblemente porque otro controlador ya ha reclamado el intervalo para su dispositivo. NdisMMapIoSpace registra un error si esto ocurre.
NDIS_STATUS_RESOURCES
No se pudo asignar la memoria o no se pudo asignar suficiente memoria virtual.
NDIS_STATUS_FAILURE
El tipo de bus o el número de bus están fuera del intervalo o la propiedad PhysicalAddress y Length dadas no eran válidas (posiblemente no dentro del espacio de E/S de la plataforma actual).

Comentarios

Los controladores de NIC que tienen memoria incorporada o un banco de registros de dispositivos aparecen en el espacio de E/S del host. Por ejemplo, el controlador de una NIC que usa PIO llama a NdisMMapIoSpace.

Una llamada correcta a los recursos de hardware de NdisMMapIoSpace del registro para la NIC del controlador. Por lo tanto, solo las funciones MiniportInitializeEx llaman a NdisMMapIoSpace.

NdisMMapIoSpace establece la variable en VirtualAddress en NULL si no devuelve NDIS_STATUS_SUCCESS.

MiniportInitializeEx obtiene el valor PhysicalAddress de la clave del Registro Parameters del controlador o llamando a una función de configuración NdisXxx específica del tipo de bus. El intervalo de direcciones físicos especificado debe estar dentro del espacio de E/S de la plataforma actual. Se trata de un error de programación para llamar a NdisMMapIoSpace con una dirección de memoria física del host.

Un controlador de minipuerto debe llamar al NdisMUnmapIoSpace mutuo para liberar su notificación en los recursos del sistema si MiniportInitializeEx no puede inicializar posteriormente una NIC, si se quita una NIC de la máquina o cuando se descarga el controlador.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisMMapIoSpace (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulta NdisMMapIoSpace (NDIS 5.1)) en Windows XP.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI Irql_Miniport_Driver_Function(ndis), NdisMMapIoSpace(ndis)

Consulte también

MiniportHaltEx

MiniportInitializeEx

NdisMGetBusData

NdisMUnmapIoSpace

NdisOpenConfigurationEx

NdisReadRegisterUchar

NdisReadRegisterUlong

NdisReadRegisterUshort

NdisWriteRegisterUchar

NdisWriteRegisterUlong

NdisWriteRegisterUshort