Freigeben über


NdisMMapIoSpace-Funktion (ndis.h)

NdisMMapIoSpace ordnet einen bestimmten busrelativen "physischen" Geräte-RAM-Bereich zu oder registriert sich in einem virtuellen Bereich im Systemraum.

Syntax

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

Parameter

[out] VirtualAddress

Zeigen Sie auf eine vom Aufrufer bereitgestellte Variable, die auf die konvertierte virtuelle Adresse festgelegt ist, wenn der Aufruf erfolgreich ist.

[in] MiniportAdapterHandle

Gibt die Handleeingabe für MiniportInitializeEx-an.

[in] PhysicalAddress

Gibt die busrelative Basis-physische Adresse des zuzuordnenden Gerätespeicherbereichs an.

[in] Length

Gibt die Anzahl der Bytes an, die zugeordnet werden sollen.

Rückgabewert

NdisMMapIoSpace- kann einen der folgenden Statuswerte zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Gerätespeicherbereich wurde erfolgreich zugeordnet, sodass der Wert bei VirtualAddress gültig ist und der zugeordnete Bereich in der Registrierung für die NIC beansprucht wurde.
NDIS_STATUS_RESOURCE_CONFLICT
Ein Versuch, den Gerätespeicherbereich in der Registrierung zurückzugeben, ist fehlgeschlagen, möglicherweise weil bereits ein anderer Treiber den Bereich für sein Gerät beansprucht hat. NdisMMapIoSpace protokolliert einen Fehler, wenn dies auftritt.
NDIS_STATUS_RESOURCES
Der Speicher konnte nicht zugeordnet werden, oder es konnte kein ausreichender virtueller Speicher zugeordnet werden.
NDIS_STATUS_FAILURE
Entweder der Bustyp oder die Busnummer liegt außerhalb des Gültigen Bereichs oder die angegebene PhysicalAddress und Length waren ungültig (möglicherweise nicht innerhalb des E/A-Raums der aktuellen Plattform).

Bemerkungen

Diese Funktion wird von Treibern von NICs aufgerufen, die über einen Bordspeicher oder eine Bank von Geräteregistern verfügen, die im E/A-Bereich des Hosts angezeigt werden. Der Treiber einer NIC, die PIO-Aufrufe verwendet, NdisMMapIoSpace.

Ein erfolgreicher Aufruf von NdisMMapIoSpace beansprucht Hardwareressourcen in der Registrierung für die NIC des Treibers. Folglich rufen nur MiniportInitializeEx Funktionen NdisMMapIoSpaceauf.

NdisMMapIoSpace legt die Variable auf VirtualAddress- auf NULL- fest, wenn keine NDIS_STATUS_SUCCESS zurückgegeben wird.

MiniportInitializeEx ruft entweder den PhysicalAddress Wert aus dem Parameter des Treibers Registrierungsschlüssel oder durch Aufrufen eines bustypspezifischen NdisXxx Konfigurationsfunktion ab. Der angegebene physische Adressbereich muss innerhalb des E/A-Raums der aktuellen Plattform liegen. Es handelt sich um einen Programmierfehler, NdisMMapIoSpace mit einer physischen Hostspeicheradresse aufzurufen.

Ein Miniporttreiber muss den gegenseitigen NdisMUnmapIoSpace- aufrufen, um seinen Anspruch auf Systemressourcen freizugeben, wenn MiniportInitializeEx anschließend keine NIC initialisieren kann, wenn eine NIC vom Computer entfernt wird und/oder wenn der Treiber entladen wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisMMapIoSpace (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisMMapIoSpace (NDIS 5.1)) in Windows XP.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln Irql_Miniport_Driver_Function(ndis), NdisMMapIoSpace(ndis)

Siehe auch

MiniportHaltEx

MiniportInitializeEx-

NdisMGetBusData-

NdisMUnmapIoSpace

NdisOpenConfigurationEx

NdisReadRegisterUchar-

NdisReadRegisterUlong-

NdisReadRegisterUshort-

NdisWriteRegisterUchar

NdisWriteRegisterUlong

NdisWriteRegisterUshort-