Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
|---|---|
|
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. |
|
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. |
|
Der Speicher konnte nicht zugeordnet werden, oder es konnte kein ausreichender virtueller Speicher zugeordnet werden. |
|
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) |