Compartir a través de


Función NdisMMapIoSpace (ndis.h)

NdisMMapIoSpace asigna un intervalo "físico" relativo al bus determinado de ram de 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 se produce esto.
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 el FísicoAddress y Longitud no eran válidos (posiblemente no dentro del espacio de E/S de la plataforma actual).

Observaciones

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 llamadas PIO NdisMMapIoSpace.

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

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

MiniportInitializeEx obtiene el valor de PhysicalAddress del Parameters del controlador clave del Registro o llamando a una función de configuración Ndis específica del tipo de busXxx. 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 miniport debe llamar al NdisMUnmapIoSpace para liberar su reclamación en los recursos del sistema si MiniportInitializeEx posteriormente no puede inicializar una NIC, si se quita una NIC de la máquina o cuando el controlador se descarga.

Requisitos

Requisito Valor
cliente mínimo admitido 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 (consulte NdisMMapIoSpace (NDIS 5.1)) en Windows XP.
de la plataforma de destino de Universal
encabezado de ndis.h (incluya Ndis.h)
biblioteca de 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