WNetAddConnection3A 函式 (winnetwk.h)
WNetAddConnection3 函式會建立與網路資源的連線。 函式可以將本機裝置重新導向至網路資源。
WNetAddConnection3 函式類似於 WNetAddConnection2 函式。 主要差異在於 WNetAddConnection3 具有額外的參數,這是網路資源提供者可作為對話框擁有者視窗的視窗句柄。 WNetAddConnection2 函式和 WNetAddConnection3 函式會取代 WNetAddConnection 函式。
語法
DWORD WNetAddConnection3A(
[in] HWND hwndOwner,
[in] LPNETRESOURCEA lpNetResource,
[in] LPCSTR lpPassword,
[in] LPCSTR lpUserName,
[in] DWORD dwFlags
);
參數
[in] hwndOwner
網路資源提供者可作為對話框擁有者視窗的視窗句柄。 如果您在 dwFlags 參數中設定CONNECT_INTERACTIVE值,請使用此參數。
hwndOwner 參數可以 NULL。 如果是,呼叫 WNetAddConnection3 相當於呼叫 WNetAddConnection2 函式。
[in] lpNetResource
NETRESOURCE 結構的指標,指定建議連線的詳細數據,例如網路資源、本機裝置和網路資源提供者的相關信息。
您必須指定 NETRESOURCE 結構的下列成員。
WNetAddConnection3 函式會忽略 NETRESOURCE 結構的其他成員。
[in] lpPassword
null終止字串的指標,指定要用於建立網路連線的密碼。
如果 lpPasswordNULL,函式會使用與 lpUserName 參數所指定使用者相關聯的目前默認密碼。
如果 lpPassword 指向空字串,則函式不會使用密碼。
如果連線因為密碼無效而失敗,且CONNECT_INTERACTIVE值是在 dwFlags 參數中設定,函式會顯示對話框,要求使用者輸入密碼。
Windows Me/98/95:此參數必須 NULL 或空字串。
[in] lpUserName
null終止字串的指標,指定用於建立連線的用戶名稱。
如果 lpUserNameNULL,則函式會使用預設的用戶名稱。 (行程的用戶內容會提供預設的用戶名稱。
當使用者想要連線到已獲指派預設使用者名稱或帳戶以外的使用者名稱或帳戶的網路資源時,會指定 lpUserName 參數。
使用者名稱字串代表 安全性內容。 它可能專屬於網路提供者。
Windows Me/98/95:此參數必須 NULL 或空字串。
[in] dwFlags
一組連線選項。 目前已定義下列值。
傳回值
如果函式成功,傳回值會NO_ERROR。
如果函式失敗,傳回值是 系統錯誤碼,例如下列其中一個值。
傳回碼 | 描述 |
---|---|
|
呼叫端無法存取網路資源。 |
|
lpLocalName 成員所指定的本機裝置已連線到網路資源。 |
|
本機裝置的類型和網路資源類型不相符。 |
|
lpLocalName 所指定的值無效。 |
|
lpRemoteName 成員所指定的值,無法接受任何網路資源提供者,可能是因為資源名稱無效,或因為無法找到具名資源。 |
|
使用者配置檔的格式不正確。 |
|
lpProvider 成員所指定的值不符合任何提供者。 |
|
路由器或提供者忙碌中,可能正在初始化。 呼叫端應該重試。 |
|
使用者透過其中一個網路資源提供者的對話框,或由呼叫的資源取消嘗試進行連線。 |
|
系統無法開啟使用者配置檔來處理持續性連線。 |
|
lpLocalName 成員所指定的裝置專案已在使用者配置檔中。 |
|
發生網路特定錯誤。 呼叫 WNetGetLastError 函式,以取得錯誤的描述。 |
|
指定的密碼無效,且未設定CONNECT_INTERACTIVE旗標。 |
|
無法執行作業,因為網路元件未啟動,或因為無法使用指定的名稱。 |
|
網路無法使用。 |
言論
WNetUseConnection 函式類似於 WNetAddConnection3 函式。 主要差異在於 WNetUseConnection 可以自動選取未使用的本機裝置以重新導向至網路資源。
在 Windows Server 2003 和 Windows XP 上,WNet 函式會在與登入會話相關聯的 MS-DOS 裝置命名空間中建立和刪除網路驅動器號,因為 authenticationID 會識別 MS-DOS 裝置 (a
與登入會話相關聯的本機唯一標識符或 LUID。 這可能會影響呼叫其中一個 WNet 函式的應用程式,以在一個使用者登入下建立網路驅動器號,但在不同使用者登入下查詢現有的網路驅動器號。 例如,藉由呼叫
在 Windows Server 2003 和 Windows XP 上,如果以 LocalSystem 執行的服務會呼叫 WNetAddConnection3 函式,則所有使用者登入會話都會看見對應的磁碟驅動器。
針對Microsoft網路提供者,NETRESOURCE 結構 lpRemoteName 成員,lpNetResource 參數可以包含 dotted-decimal 表示法中的 IPv4 位址。 共用的範例如下:
\192.168.1.1\share
針對 Windows Vista 和更新版本上的Microsoft網路提供者,lpRemoteNameNETRESOURCE 結構的成員,lpNetResource 參數所指向的結構可以包含 IPv6 位址。 不過,必須使用 IPv6 常值格式,才能正確剖析 IPv6 位址。 IPv6 常值位址的格式如下:
ipv6-address 與 ':' 字元取代為 '-' 字元,後面接著 “.ipv6-literal.net” 字串。
例如,針對下列 IPv6 位址:
2001:4898:9:3:c069:aa97:fe76:2449
共用的範例可能如下:
\2001-4898-9-3-c069-aa97-fe76-2449.ipv6-literal.net\share
其他網路提供者可能支援包含 IPv4 或 IPv6 位址的 lpNetResource 參數所指向 NETRESOURCE 結構 lpRemoteName 成員,但這是由特定網路提供者決定。
Windows 7 和 Windows Server 2008 R2:如果呼叫 WNetAddConnection3 函式時,pUsername 中指定的明確用戶認證 和 lpPassword,以在特定伺服器上建立與網路資源的聯機,然後使用下列其中一個參數再次呼叫,作為 NULL(以使用預設使用者名稱或默認密碼)到相同的伺服器, 話叫失敗。 傳回的錯誤將會 ERROR_BAD_USERNAME 或 ERROR_INVALID_PASSWORD。
注意
winnetwk.h 標頭會根據 UNICODE 預處理器常數的定義,將 WNetAddConnection3 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winnetwk.h |
連結庫 | Mpr.lib |
DLL | Mpr.dll |