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 |
---|---|
|
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. |
|
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. |
|
No se pudo asignar la memoria o no se pudo asignar suficiente memoria virtual. |
|
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) |