簡介
Winsock2 SPI允許開發兩類服務提供者——傳輸服務提供者和名字空間服務提供者。“傳輸提供者”(Transport Providers, 一般稱作協定
堆疊,例如TCP/IP)能夠提供建立通信、傳輸數據、日常
數據流控制和錯誤控制等傳輸功能方面的服務。“名字空間提供者”(Name Space Providers,例如DNS域名解析服務)則把一個網路協定的地址屬性和一個或多個用戶友好名稱關聯到一起,以便啟用與套用無關的域名解析方案。
如果 Winsock註冊表項已損壞,則可能出現這些問題。
如果名稱與此列表中的名稱不同,則表明 Winsock2 項已損壞或者已安裝了第三方
載入項,如代理軟體。
如果安裝了第三方載入項,則載入項的名稱將替換列表中的字母“MSAFD”。
如果列表中的節多於 10 個,則表明安裝了第三方載入項。
如果少於 10 個節,則說明缺少信息。
注意:這些條目所代表的是僅裝有 TCP/IP 協定的安裝。您可能有一個正在工作的 Winsock,如果安裝了另一個協定,則可能會看到其他條目。例如,如果安裝了 NWLink IPX/SPX,那么您將另外看到 7 個節,這時總共會有 17 個節。下面是某個新節的節標頭示例:
MSAFD nwlnkipx [IPX]
另外,安裝 NWLink IPX/SPX 時所創建的每個新節都以“MSAFD”開頭。因此,仍然只有兩個節不以這些字母開頭。
如果 Netdiag 測試失敗,或者您通過查看 Msinfo32 確定 Winsock 已損壞,則必須使用下一節中的步驟修復 Winsock2。
從 Winsock2 損壞中恢復的手動步驟
帶 Service Pack 2 的 Windows XP 說明
要在已安裝 Windows XP Service Pack 2 (SP2) 的情況下修復 Winsock,請在
命令提示符處鍵入 netsh winsock reset,然後按 Enter。
http://www.microsoft.com/china/t ... ntain/sp2netwk.mspx (http://www.microsoft.com/china/t ... tain/sp2netwk.mspx)
警告:在運行 netsh winsock reset 命令時,訪問或監視 Internet 的程式(如防病毒程式、
防火牆或代理客戶端)可能會受到不良影響。如果使用此解決方案後某個程式無法正常工作,請重新安裝該程式以恢復功能。
注意:如果這些步驟無法解決問題,請執行下一節中的步驟。
不帶 Service Pack 2 的 Windows XP 說明
要在未安裝 Windows XP SP2 的情況下修復 Winsock,請刪除已損壞的註冊表項,然後重新安裝 TCP/IP 協定。
步驟 1:刪除已損壞的註冊表項
警告:如果使用
註冊表編輯器或其他方法錯誤地修改了註冊表,則可能導致嚴重問題。這些問題可能需要重新安裝作業系統才能解決。Microsoft 不能保證您可以解決這些問題。修改註冊表需要您自擔風險。
有關如何備份註冊表的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
1. 單擊“開始”,然後單擊“運行”。
2. 在“打開”框中,鍵入 regedit,然後單擊“確定”。
3. 在
註冊表編輯器中,找到下列項,右鍵單擊各項,然後單擊“刪除”:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
4. 在系統提示您確認刪除時,單擊“是”。
步驟 2:安裝 TCP/IP
1. 右鍵單擊網路連線,然後單擊“屬性”。
2. 單擊“安裝”。
3. 單擊“協定”,然後單擊“添加”。
4. 單擊“從磁碟安裝”。
6. 在可用協定列表中,單擊“Internet 協定(TCP/IP)”,然後單擊“確定”。
7. 重新啟動計算機。
症狀
在嘗試使用 Ipconfig 程式 (Ipconfig.exe) 釋放或更新 IP 地址時,可能會收到下列錯誤訊息之一。
訊息 1
An error occurred while renewing interface 'Internet':An operation was attempted on something that is not a socket.
訊息 2
An error occurred while renewing interface Local Area Connection:the requested service provider could not be loaded or initialized.
在啟動 Internet Explorer 時,可能會收到以下錯誤訊息:
The page cannot be displayed
在使用計算機時,您可能會收到以下錯誤訊息:
Initialization function INITHELPERDLL in IPMONTR.DLL failed to start with error code 10107
另外,您可能沒有 IP 地址或沒有自動專用 IP 地址 (
APIPA),您可能正在接收而不是正在傳送 IP 數據包。
使用 ipconfig /renew 命令時,您可能會收到以下錯誤訊息。
訊息 1
An error occurred while renewing interface local area connection:an operation was attempted on something that is not a socket.Unable to contact driver Error code 2.
訊息 2
The operation failed since no adapter is in the state permissible for this operation.
訊息 3
The attempted operation is not supported for the type of object referenced.
在“
設備管理器”中,在單擊“顯示隱藏的設備”時,“TCP/IP Protocol Driver”會在“非即插即用
驅動程式”下以禁用狀態列出,並且您會收到
錯誤代碼 24。
在創建撥號連線時,您可能會收到以下錯誤訊息:
Error 720:No PPP Control Protocols Configured
解決方案
確定 Winsock2 是否損壞的手動步驟
要確定症狀是否由 Winsock2 項的問題引起,請使用以下方法。
方法 1:使用 Netdiag 工具
要使用 Netdiag 工具,必須安裝 Microsoft Windows XP 支持工具。為此,請按照下列步驟操作。
注意· 如果已安裝支持工具,請轉到本節中的步驟 2。
· 如果未安裝支持工具,並且沒有 Windows XP 安裝 CD,請轉到方法 2。
1. 插入 Windows XP 安裝 CD,然後找到 Support\Tools 資料夾。
2. 雙擊“Setup.exe”檔案。
3. 按照螢幕上的步驟操作,直到出現“選擇安裝類型”螢幕。
4. 在“選擇安裝類型”螢幕上,單擊“完全”,然後單擊“下一步”。
完成安裝後,請按照下列步驟操作: 1. 單擊“開始”,單擊“運行”,鍵入 command,然後單擊“確定”。
2. 鍵入 netdiag /test:winsock,然後按 Enter。
Netdiag 工具將返回對若干個網路組件的測試結果,其中包括 Winsock。有關測試的更多信息,請在 netdiag 命令的末尾使用 /v:netdiag /test:winsock /v
方法 2:使用 Msinfo32 程式
2. 依次展開“組件”、“網路”,然後單擊“協定”。
3. “協定”下包含 10 個節。如果 Winsock2 項未損壞,則節標頭中將包括以下名稱: · MSAFD Tcpip [TCP/IP]
· MSAFD Tcpip [UDP/IP]
· RSVP UDP Service Provider
· RSVP TCP Service Provider
· MSAFD NetBIOS [\Device\NetBT_Tcpip...
· MSAFD NetBIOS [\Device\NetBT_Tcpip...
· MSAFD NetBIOS [\Device\NetBT_Tcpip...
· MSAFD NetBIOS [\Device\NetBT_Tcpip...
· MSAFD NetBIOS [\Device\NetBT_Tcpip...
· MSAFD NetBIOS [\Device\NetBT_Tcpip...