Udostępnij za pośrednictwem


Obsługa żądań OID w miniport adapterze

NDIS wywołuje funkcję MiniportOidRequest sterownika miniportu, aby przesłać żądanie OID w celu zapytania lub ustawienia informacji w sterowniku. NDIS wywołuje funkcję MiniportOidRequest we własnym imieniu lub w imieniu nadrzędnego sterownika, który wywołał funkcję NdisOidRequest lub NdisFOidRequest.

Usługa NDIS przekazuje MiniportOidRequest wskaźnik do struktury NDIS_OID_REQUEST zawierającej informacje o żądaniu. Struktura żądań zawiera identyfikator OID_Xxx, który wskazuje typ żądania oraz inne elementy członkowskie do zdefiniowania danych żądania.

Członek Timeout określa limit czasu (w sekundach) dla żądania. Usługa NDIS może zresetować sterownik lub anulować żądanie, jeśli limit czasu wygaśnie przed ukończeniem żądania przez sterownik.

Element RequestId określa opcjonalny identyfikator żądania. Sterowniki miniportu mogą ustawić RequestId elementu członkowskiego wskazania stanu na wartość uzyskaną z RequestId elementu członkowskiego skojarzonego żądania OID. Zazwyczaj sterowniki miniportów mogą ignorować ten człon. Jeśli sterownik musi ustawić ten członek, dokumentacja referencyjna dla określonego identyfikatora OID zawiera wymagane wartości. Aby uzyskać więcej informacji o wskazaniach stanu, zobacz Wskaźniki stanu adaptera.

Sterownik miniportu, który pomyślnie obsługuje żądanie ustawienia identyfikatora OID, musi ustawić pole SupportedRevision w strukturze NDIS_OID_REQUEST po wykonaniu żądania. Członek SupportedRevision powiadamia inicjatora żądania poprawki obsługiwanej przez sterownik. Na przykład sterownik miniportu może utworzyć strukturę Xxx_REVISION_2, dostarczyć wartości odpowiednie dla struktury Xxx_REVISION_1 i wypełnić resztę struktury zerami. Sterownik miniportu zgłosi Xxx_REVISION_1 w SupportedRevision jako element. W takim przypadku sterownik protokołu, który może obsługiwać Xxx_REVISION_2, będzie używać informacji Xxx_REVISION_1, wspieranych przez sterownik miniportu. Aby uzyskać więcej informacji o wersji w strukturach NDIS, zobacz Określanie informacji o wersji NDIS.

Sterownik miniportu może wykonać żądanie OID synchronicznie, zwracając stan powodzenia lub niepowodzenia.

Sterownik miniportu może wykonać żądanie OID asynchronicznie, zwracając NDIS_STATUS_PENDING. W takim przypadku sterownik miniportu musi wywołać funkcję NdisMOidRequestComplete, aby ukończyć operację.

Jeśli MiniportOidRequest zwróci NDIS_STATUS_PENDING, usługa NDIS nie wywoła MiniportOidRequest z innym żądaniem dla adaptera do momentu ukończenia oczekującego żądania.

Usługa NDIS może wywołać funkcję miniportu MiniportCancelOidRequest, aby anulować żądanie OID.