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 |
---|---|
|
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 esto ocurre. |
|
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 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) |