共用方式為


將值傳回 MPR

Windows 網路函式會在成功時傳回WN_SUCCESS,或者如果函式發生錯誤,則會傳回唯一的非零值。 此外,它們會使用 WNetSetLastErrorSetLastError傳回擴充錯誤資訊。

為了支援上述行為,網路提供者函式在傳回之前不應該呼叫 SetLastError。 這是因為 MPR 針對網路提供者 API 中的函式在傳回之後會呼叫 SetLastError。 如果網路提供者直接呼叫 SetLastError,則會進行備援函式呼叫。 網路提供者函式應該只會傳回錯誤碼。 錯誤碼會在函式描述或 傳回值中指定。 此外,網路提供者函式可能會傳回任何 系統錯誤碼,例如記憶體不足。 唯一的例外狀況是 NPGetCaps,其應該會傳回一個遮蔽碼,表示網路供應商支援的功能。

如果網路提供者函式需要傳回擴充的錯誤資訊,它應該呼叫 WNetSetLastError。 此函式是由 Windows作系統提供,供網路提供者使用。 當提供者呼叫 WNetSetLastError時,它可以設定字串,其中包含錯誤的其他資訊。 這項資訊會以每個線程為基礎儲存。 這類似於 Windows 應用程式的 SetLastError。 Windows作系統會呼叫 WNetSetLastError 來檢查使用 WNetSetLastError 所儲存的字元串,如果找到,則會將擴充錯誤資訊傳回起始網路要求的呼叫應用程式。

注意

WNetSetLastError 的 WNet 前置詞會誤導,因為此 API 不同於 WNetSetLastError,不屬於 Windows 網路 API 集合的一部分。 WNetSetLastError 僅供網路提供者使用。 WNetSetLastError的名稱會保留,以便與現有提供者相容。