NdisOidRequest-Funktion (ndis.h)
Die NdisOidRequest Funktion leitet eine Anforderung an die zugrunde liegenden Treiber weiter, um die Funktionen oder den Status eines Adapters abzufragen oder den Status eines Adapters festzulegen.
Syntax
NDIS_STATUS NdisOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parameter
[in] NdisBindingHandle
Der von der NdisOpenAdapterEx--Funktion zurückgegebene Handle, der den Zieladapter für die Bindung identifiziert.
[in] OidRequest
Ein Zeiger auf eine NDIS_OID_REQUEST-Struktur, die den mit einem bestimmten OID_XXX- Code angeforderten Vorgang angibt, um den Status eines Adapters abzufragen oder den Status eines Adapters festzulegen.
Rückgabewert
Der zugrunde liegende Treiber bestimmt, welcher NDIS_STATUS_XXX- Code NdisOidRequest zurückgibt, aber in der Regel einer der folgenden Werte ist:
Rückgabecode | Beschreibung |
---|---|
|
Der Anforderungsvorgang wurde erfolgreich abgeschlossen. |
|
Die Anforderung wird asynchron verarbeitet, und NDIS ruft die Aufrufer auf. ProtocolOidRequestComplete Funktion, wenn die Anforderung abgeschlossen ist. |
|
Der OID_XXX- Code, der im Oid- Member des NDIS_OID_REQUEST-strukturierten Puffers bei OidRequest- angegeben ist, ist ungültig oder wird vom zugrunde liegenden Treiber nicht unterstützt. |
|
Der im InformationBufferLength Member des NDIS_OID_REQUEST strukturierten Puffers bei OidRequest- angegebene Wert entspricht nicht den Anforderungen für den angegebenen OID_XXX--Code. Wenn der Informationspuffer zu klein ist, enthält das BytesNeededed Member den richtigen Wert für InformationBufferLength für die Rückgabe von NdisOidRequest. |
|
Die bei InformationBuffer in der angegebenen NDIS_OID_REQUEST Struktur bereitgestellten Daten sind für den angegebenen OID_XXX--Code ungültig. |
|
Der zugrunde liegende Treiber unterstützt den angeforderten Vorgang nicht. |
|
Die Anforderung konnte aufgrund eines Ressourcenmangels nicht erfüllt werden. Normalerweise gibt dieser Rückgabewert an, dass ein Versuch, Arbeitsspeicher zuzuweisen, nicht erfolgreich war, aber nicht notwendigerweise darauf hinweist, dass dieselbe Anforderung, die später übermittelt wird, aus demselben Grund fehlgeschlagen ist. |
|
Der zugrunde liegende Treiber hat versucht, den angeforderten Vorgang auszuführen, in der Regel ein Satz für eine NIC, aber er ist fehlgeschlagen. Beispielsweise kann ein Versuch, zu viele Multicastadressen festzulegen, dazu führen, dass dieser Wert zurückgegeben wird. |
|
Der zugrunde liegende Treiber hat den angeforderten Vorgang fehlgeschlagen, da ein Abschlussvorgang ausgeführt wird. |
|
Der zugrunde liegende Miniporttreiber kann die Anforderung zu diesem Zeitpunkt nicht erfüllen, da die betroffene NIC derzeit zurückgesetzt wird. Die ProtocolStatusEx-Funktion des Aufrufers wurde oder wird mit NDIS_STATUS_RESET_START aufgerufen, um anzugeben, dass eine Zurücksetzung ausgeführt wird. Dieser Rückgabewert gibt nicht unbedingt an, dass dieselbe Anforderung, die später übermittelt wird, aus demselben Grund fehlgeschlagen ist. |
|
Dieser Wert ist in der Regel ein nicht spezifischer Standardwert, der zurückgegeben wird, wenn keiner der spezifischeren NDIS_STATUS_XXX- verursacht hat, dass der zugrunde liegende Treiber die Anforderung fehlschlägt. |
Bemerkungen
Ein Protokolltreiber muss genügend Arbeitsspeicher zuweisen, um den Informationspuffer zu speichern, der dem angegebenen OID zugeordnet ist. Der Treiber muss den Puffer auch bei OidRequest- zuordnen und einrichten, bevor er NdisOidRequest-aufruft. Beide Puffer müssen aus einem nicht ausgelagerten Pool zugewiesen werden, da der zugrunde liegende Treiber beim Verarbeiten der Anforderung bei ausgelöster IRQL ausgeführt wird.
NdisOidRequest eine Anforderung an zugrunde liegende Treiber weiter oder verarbeitet die Anforderung selbst. Wenn der nächste niedrigere Treiber ein NDIS-Zwischentreiber ist, kann er NdisOidRequest- mit einer eigenen OID-spezifischen Anforderung aufrufen, bevor die Anforderung abgeschlossen wurde, die ursprünglich vom Treiber der höheren Ebene übermittelt wurde.
Einige zurückgegebene Fehler können wiederhergestellt werden, einschließlich der folgenden:
Das heißt, ein Treiber kann das Paket bei OidRequest entsprechend ändern, um den OID_XXX- code oder die Größe oder den Inhalt des Puffers bei InformationBuffer- zu korrigieren und das Anforderungspaket erneut an NdisOidRequestzu übermitteln. Dasselbe Paket kann bei der erneuten Anforderung an NdisOidRequest erfüllt sein, wenn der ursprüngliche Aufruf eine zurückgesetzte Zurücksetzung anzeigte oder dass ein Ressourcenmangel, der vorübergehend sein könnte, verhinderte, dass diese Anforderung ausgeführt wird.
Die NDIS-Bibliothek verwaltet Bindungen für zugrunde liegende Miniporttreiber. NDIS kann Informationen für bindungsspezifische Abfragen zurückgeben, wenn ein OID einem vom System definierten Mediumtyp zugeordnet ist, für den das System eine Filterbibliothek bereitstellt.
Weitere Informationen zu den allgemeinen und medienspezifischen OIDs und den entsprechenden zugeordneten Informationspuffern finden Sie unter NDIS OIDs.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
Zielplattform- | Desktop |
Header- | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_OID_Function(ndis) |