共用方式為


將值傳回至 MPR

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

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

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

注意

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