Behandeln von OID-Anforderungen in einem Miniportadapter
NDIS ruft die MiniportOidRequest-Funktion eines Miniporttreibers auf, um eine OID-Anforderung zum Abfragen oder Festlegen von Informationen im Treiber zu übermitteln. NDIS ruft die MiniportOidRequest-Funktion entweder im eigenen Namen oder im Namen eines überliegenden Treibers auf, der die NdisOidRequest - oder NdisFOidRequest-Funktion aufgerufen hat.
NDIS übergibt MiniportOidRequest einen Zeiger an eine NDIS_OID_REQUEST-Struktur , die die Anforderungsinformationen enthält. Die Anforderungsstruktur enthält einen OID_Xxx Bezeichner, der den Typ der Anforderung und andere Member angibt, um die Anforderungsdaten zu definieren.
Das Timeoutelement gibt ein Timeout in Sekunden für die Anforderung an. NDIS kann den Treiber zurücksetzen oder die Anforderung abbrechen, wenn das Timeout abläuft, bevor der Treiber die Anforderung abgeschlossen hat.
Das RequestId-Mitglied gibt einen optionalen Bezeichner für die Anforderung an. Miniporttreiber können den RequestId-Member einer status Angabe auf den Wert festlegen, der vom RequestId-Member einer zugeordneten OID-Anforderung abgerufen wurde. In der Regel können Miniporttreiber diesen Member ignorieren. Wenn ein Treiber diesen Member festlegen muss, enthält die Referenzseite für die jeweilige OID die erforderlichen Werte. Weitere Informationen zu status Indikationen finden Sie unter Adapterstatusanzeigen.
Ein Miniporttreiber, der eine OID-Setanforderung erfolgreich verarbeitet, muss das SupportedRevision-Element in der NDIS_OID_REQUEST-Struktur festlegen, wenn die OID-Setanforderung zurückgegeben wird. Das SupportedRevision-Mitglied benachrichtigt den Initiator der Anforderung der Revision, die vom Treiber unterstützt wird. Ein Miniporttreiber kann beispielsweise eine Xxx_REVISION_2-Struktur erstellen, Werte bereitstellen, die für eine Xxx_REVISION_1-Struktur geeignet sind, und den Rest der Struktur mit Nullen füllen. Der Miniporttreiber meldet Xxx_REVISION_1 im SupportedRevision-Member . In diesem Fall verwendet ein Protokolltreiber, der eine Xxx_REVISION_2 unterstützen kann, Xxx_REVISION_1 Informationen, die vom Miniporttreiber unterstützt werden. Weitere Informationen zu Versionsinformationen in NDIS-Strukturen finden Sie unter Angeben von NDIS-Versionsinformationen.
Ein Miniporttreiber kann eine OID-Anforderung synchron abschließen, indem er einen erfolgreichen oder fehlerhaften status zurückgibt.
Ein Miniporttreiber kann eine OID-Anforderung asynchron ausführen, indem er NDIS_STATUS_PENDING zurückgibt. In diesem Fall muss der Miniporttreiber die NdisMOidRequestComplete-Funktion aufrufen, um den Vorgang abzuschließen.
Wenn MiniportOidRequest NDIS_STATUS_PENDING zurückgibt, ruft NDIS MiniportOidRequest nicht mit einer anderen Anforderung für den Adapter auf, bis die ausstehende Anforderung abgeschlossen ist.
NDIS kann die MiniportCancelOidRequest-Funktion eines Miniporttreibers aufrufen, um eine OID-Anforderung abzubrechen.