PRB: GetAddressByName() 傳回 ERROR_FILE_NOT_FOUND

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:185725
徵狀
Winsock API GetAddressByName() 錯誤而失敗時嘗試取得有關 particularservice 的 2(ERROR_FILE_NOT_FOUND)。
發生的原因
這只發生在具有全新安裝的 Windows 95 電腦上該 havenever 有 Microsoft TCP/IP 通訊協定或網路安裝 Microsoft 用戶端 forNetware。
解決方案
若要解決這個問題,建立名為 ExcludedProvidersunder 的登錄機碼 ︰
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\    ServiceProvider\Order\ 				
當您建立此機碼之後時,會有下列的預設 stringpair:
(預設值) =(value not set)
按一下 [(預設值),然後按一下滑鼠右鍵以選擇修改。您可以變更數值資料] 對話方塊 boxwhere 就會出現。請確定值 datafield 會完全空白,然後再按一下 [確定]。新的值配對看起來 asfollows:
(預設值) =""
狀況說明
Microsoft 研究這個問題,並將新資訊公佈下面 「 Microsoft 知識庫 」 中的文可用時。
其他相關資訊

範例程式碼

下列程式碼會嘗試尋找 Netware 檔案 ServerService 的詳細資訊。如果您的 meetthe 準則先前所述,GetAddressByName() 的呼叫將會失敗,錯誤為 2。
   #include <stdio.h>   #include <winsock2.h>   #include <nspapi.h>   #include <svcguid.h>   #include <wsipx.h>   int main (int argc, char **argv)   {      WSADATA     WSAData;      INT         protocols[1],                  i,                  err;      char        buffer[2048];      DWORD       bytesRequired;      SOCKET      s;      LPSTR       ServiceTypeName=NULL;      char        szServerName[100];      PCSADDR_INFO csaddrInfo;      if (WSAStartup( MAKEWORD(2,0), &WSAData))      {          printf( "WSAStartup error\n" );          return -1;      }      GUID ServiceType = SVCID_FILE_SERVER;      /*       * Service Name advertised on NetWare server       */       ServiceTypeName = argv[1];      protocols[0]    = NSPROTO_IPX;      bytesRequired   = sizeof(buffer);      err = GetAddressByName(              NS_SAP,              &ServiceType,              ServiceTypeName,              protocols,              RES_SOFT_SEARCH,              NULL,              buffer,              &bytesRequired,              NULL,              NULL              );      if (err < 0)      {          err = GetLastError();          printf("GetAddressByName error: %d\n", err);          return 1;      }      else if (err == 0)      {          printf("GetAddressByName: no service found.\n");          return 1;      }      WSACleanup()      return 0;   }				
Netware GetAddressByName

警告:本文為自動翻譯

內容

文章識別碼:185725 - 最後檢閱時間:06/12/2016 12:17:00 - 修訂: 3.0

Microsoft Windows 95

  • kbapi kbnetwork kbpending kbprb kbwinsock kbmt KB185725 KbMtzh
意見反應