Freigeben über


NdisRequest-Funktion (ndis.h)

Hinweis NDIS 5. x ist veraltet und wird von NDIS 6 ersetzt. x. Informationen zur neuen NDIS-Treiberentwicklung finden Sie unter Netzwerktreiber ab Windows Vista. Informationen zum Portieren von NDIS 5. x Treiber auf NDIS 6. xfinden Sie unter Portieren von NDIS 5.x-Treibern zu NDIS 6.0.

NdisRequest eine Anforderung an den zugrunde liegenden Treiber weiterleitet, dass er die Funktionen oder den Status seiner NIC abfragt oder den Status seiner NIC festgelegt hat.

Syntax

void NdisRequest(
  [out] PNDIS_STATUS  Status,
  [in]  NDIS_HANDLE   NdisBindingHandle,
  [in]  PNDIS_REQUEST NdisRequest
);

Parameter

[out] Status

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die für die Rückgabe von dieser Funktion festgelegt ist. Der zugrunde liegende Treiber bestimmt, welche NDIS_STATUS_XXX- zurückgegeben wird, ist jedoch in der Regel einer der folgenden Werte:

  • NDIS_STATUS_SUCCESS
    Der angeforderte Vorgang wurde erfolgreich abgeschlossen.

  • NDIS_STATUS_PENDING
    Die Anforderung wird asynchron behandelt, und die ProtocolRequestComplete--Funktion des Aufrufers wird aufgerufen, wenn sie abgeschlossen ist.

  • NDIS_STATUS_INVALID_OID
    Der OID_XXX- Code, der im Oid- Member des NDIS_REQUEST strukturierten Puffers bei NdisRequest- angegeben ist, ist ungültig oder wird vom zugrunde liegenden Treiber nicht unterstützt.

  • NDIS_STATUS_INVALID_LENGTH oder NDIS_STATUS_BUFFER_TOO_SHORT
    Der im InformationBufferLength Member des NDIS_REQUEST strukturierten Puffers bei NdisRequest- 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 NdisRequest.

  • NDIS_STATUS_INVALID_DATA
    Die bei InformationBuffer in der angegebenen NDIS_REQUEST Struktur bereitgestellten Daten sind für den angegebenen OID_XXX--Code ungültig.

  • NDIS_STATUS_NOT_SUPPORTED oder NDIS_STATUS_NOT_RECOGNIZED
    Der zugrunde liegende Treiber unterstützt den angeforderten Vorgang nicht.

  • NDIS_STATUS_RESOURCES
    Die Anforderung konnte aufgrund eines Ressourcenmangels nicht erfüllt werden. Normalerweise gibt diese Rückgabe 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.

  • NDIS_STATUS_NOT_ACCEPTED
    Der zugrunde liegende Treiber hat versucht, den angeforderten Vorgang, in der Regel einen Satz, für seine NIC auszuführen, aber die Netcard konnte nicht ausgeführt werden. Beispielsweise kann ein Versuch, zu viele Multicastadressen festzulegen, dazu führen, dass dieser Wert zurückgegeben wird.

  • NDIS_STATUS_CLOSING oder NDIS_STATUS_CLOSING_INDICATING
    Der zugrunde liegende Treiber hat den angeforderten Vorgang fehlgeschlagen, da ein Schließen ausgeführt wird.

  • NDIS_STATUS_RESET_IN_PROGRESS
    Der zugrunde liegende NIC-Treiber kann die Anforderung zurzeit nicht erfüllen, da sie derzeit die Netcard zurückgesetzt hat. Die ProtocolStatus- 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.

  • NDIS_STATUS_FAILURE
    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.

[in] NdisBindingHandle

Gibt das von NdisOpenAdapter zurückgegebene Handle an, das die Ziel-NIC oder den virtuellen Adapter des nächsten unteren Treibers identifiziert, an den der Aufrufer gebunden ist.

[in] NdisRequest

Zeiger auf eine gepufferte Struktur, die den mit einem bestimmten OID_ XXX-Code für eine Abfrage oder einen Satz angeforderten Vorgang angibt.

Rückgabewert

Nichts

Bemerkungen

Ein Protokolltreiber muss genügend Arbeitsspeicher für den Informationspuffer zuweisen, der dem OID_XXX- des angeforderten Vorgangs zugeordnet ist. Der Treiber muss den Puffer auch bei NdisRequest- zuordnen und einrichten, bevor er NdisRequest-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.

Für Anrufer, die über einem NDIS-Treiber überschichtet sind, leitet NdisRequest eine Anforderung an den nächsten niedrigeren Treiber weiter, der Informationen über seine eigenen Funktionen zurückgibt, oder leitet ihn an, bestimmte Funktionen auf eine vom Aufrufer festgelegte Weise zu verarbeiten. Wenn der nächste niedrigere Treiber ein NDIS-Zwischentreiber ist, kann er NdisRequest- mit einer eigenen OID-spezifischen Anforderung aufrufen, bevor die Anforderung abgeschlossen wurde, die ursprünglich vom Protokoll der höheren Ebene übermittelt wurde.

Einige Fehler, die bei Status zurückgegeben werden, können wiederhergestellt werden, einschließlich der folgenden:

NDIS_STATUS_INVALID_OID

NDIS_STATUS_INVALID_LENGTH

NDIS_STATUS_BUFFER_TOO_SHORT

NDIS_STATUS_INVALID_DATA

NDIS_STATUS_RESOURCES

NDIS_STATUS_RESET_IN_PROGRESS

Das heißt, ein Treiber kann das Paket bei NdisRequest entsprechend ändern, um den OID_XXX- code und/oder die Größe oder den Inhalt des Puffers bei InformationBuffer zu korrigieren und das Anforderungspaket erneut an NdisRequestzu übermitteln. Dasselbe Paket kann bei der erneuten Anforderung an NdisRequest erfüllt sein, wenn der ursprüngliche Aufruf eine Zurücksetzung in Bearbeitung 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 zugehörigen Informationspuffern finden Sie unter NDIS-Objektbezeichner.

  • Zielplattform: universelle
  • Version: Für NDIS 6.0-Treiber in Windows Vista nicht unterstützt. Verwenden Sie stattdessen NdisOidRequest-. Unterstützt für NDIS 5.1-Treiber in Windows Vista und Windows XP.

Anforderungen

Anforderung Wert
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- IRQL-<= DISPATCH_LEVEL

Siehe auch