Ustawianie parametrów Device-Specific
Oczekuje się, że większość zdalnych urządzeń NDIS będzie działać dobrze bez konieczności konfigurowania parametrów na hoście. Jednak mogą wystąpić przypadki, w których właściwa operacja sieciowa wymaga pewnej konfiguracji na hoście. Jeśli urządzenie obsługuje konfigurowalne parametry, to powinno zawierać następujący opcjonalny identyfikator OID na liście obsługiwanych identyfikatorów OID zgłaszanych w odpowiedzi na zapytanie dotyczące OID_GEN_SUPPORTED_LIST:
#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B
Jeśli urządzenie obsługuje OID OID_GEN_RNDIS_CONFIG_PARAMETER, host używa go do ustawiania parametrów specyficznych dla urządzenia, wkrótce po tym, jak urządzenie przejdzie do stanu zainicjowanego przez zdalny NDIS ze stanu niezainicjowanego. Host wyśle zero lub więcej wiadomości "REMOTE_NDIS_SET_MSG" do urządzenia, ustawiając OID na wartość "OID_GEN_RNDIS_CONFIG_PARAMETER". Każda taka REMOTE_NDIS_SET_MSG odpowiada jednemu parametrowi specyficznemu dla urządzenia skonfigurowanego na hoście.
InformationBuffer skojarzony z każdym takim REMOTE_NDIS_SET_MSG ma następujący format. Należy pamiętać, że wartości *offset* są w odniesieniu do początku buforu informacji.
Przesunięcie | Rozmiar | Pole | Opis |
---|---|---|---|
0 |
4 |
Nazwa parametruOffset |
Określa przesunięcie bajtu od początku pola ParameterNameOffset, w którym znajduje się ciąg znaków Unicode reprezentujący nazwę parametru. Ciąg nie zawiera terminatora o wartości NULL. |
4 |
4 |
Długość nazwy parametru |
Określa długość bajtu ciągu nazwy parametru. |
8 |
4 |
Typ parametru |
Określa typ danych wartości parametru. Jest to jedna z następujących wartości: 0 — wartość liczbowa; 2 — wartość ciągu. |
12 |
4 |
WartośćPrzesunięciaParametru |
Określa przesunięcie bajtu od początku pola ParameterNameOffset, w którym znajduje się wartość parametru. |
16 |
4 |
ParametrValueLength |
Określa długość bajtu wartości parametru. |
Urządzenie wysyła REMOTE_NDIS_SET_CMPLT w odpowiedzi na każde REMOTE_NDIS_SET_MSGpo zastosowaniu wartości parametru. Jeśli ustawienie parametru jest dopuszczalne, zwraca stan RNDIS_STATUS_SUCCESS w odpowiedzi. Jeśli ustawienie parametru jest nie do przyjęcia, a urządzenie nie może zastosować przydatnej wartości domyślnej dla tego parametru, urządzenie zwraca odpowiednią wartość stanu błędu (zobacz sekcję dotyczącą wartości stanu). Jeśli zostanie zwrócony stan błędu, host zainicjuje proces zatrzymania urządzenia.
Oczekuje się, że parametry specyficzne dla urządzenia zostaną skonfigurowane w rejestrze systemu Windows. Klucze definiujące wartości parametrów są zwykle tworzone w rejestrze podczas procesu instalacji urządzenia. Lista kluczy, informacji o typie, wartościach domyślnych i opcjonalnym zakresie prawidłowych wartości jest określona w pliku INF dla urządzenia. Aby uzyskać więcej informacji na temat ustawiania parametrów konfiguracji w rejestrze systemu dla urządzeń sieciowych przy użyciu pliku INF, zapoznaj się z dokumentacją Windows 2000 Driver Development Kit (DDK).