Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcje sieciowe systemu Windows zwracają wartość WN_SUCCESS na powodzenie lub zwracają unikalną wartość niezerową, jeśli funkcja napotka błąd. Ponadto zwracają rozszerzone informacje o błędach przy użyciu WNetSetLastError i SetLastError.
Aby zapewnić obsługę powyższego zachowania, funkcje dostawcy sieci nie powinny wywoływać SetLastError przed zwróceniem. Dzieje się tak, ponieważ MPR wywołuje SetLastError dla funkcji w interfejsie API dostawcy sieci, po ich wykonaniu. Jeśli dostawcy sieci wywołają SetLastError bezpośrednio, będą oni podejmować nadmiarowe wywołania funkcji. Funkcje dostawcy sieci powinny po prostu zwrócić kod błędu. Kody błędów są określone w opisie funkcji lub Wartości Zwracane. Ponadto funkcje dostawcy sieci mogą zwracać wszystkie kody błędów systemu , takie jak niewystarczająca ilość pamięci. Jedynym wyjątkiem jest NPGetCaps, który powinien zwrócić maskę wskazującą funkcje obsługiwane przez dostawcę usług sieciowych.
Jeśli funkcja dostawcy sieci musi zwrócić rozszerzone informacje o błędzie, powinna wywołać WNetSetLastError. Ta funkcja jest udostępniana przez system operacyjny Windows do użycia przez dostawców sieci. Gdy dostawca wywołuje WNetSetLastError, może ustawić ciąg zawierający dodatkowe informacje o błędzie. Te informacje są przechowywane w poszczególnych wątkach. Jest to analogia do SetLastError dla aplikacji systemu Windows. System operacyjny Windows wywołuje WNetSetLastError, aby sprawdzić ciąg przechowywany przy użyciu WNetSetLastError i, jeśli zostanie znaleziony, zwraca rozszerzone informacje o błędzie do aplikacji wywołującej, która zainicjowała żądanie sieciowe.
Notatka
Prefiks WNet WNetSetLastError jest mylący, ponieważ ten interfejs API, w przeciwieństwie do WNetSetLastError, nie jest częścią zestawu Windows Networking API. WNetSetLastError jest przeznaczony tylko do użytku przez dostawców sieci. Nazwa WNetSetLastErrorjest zachowywana w celu zachowania zgodności z istniejącymi dostawcami.