共用方式為


WNetOpenEnumA 函式 (winnetwk.h)

WNetOpenEnum 函式會啟動網路資源或現有連線的列舉。 您可以呼叫 WNetEnumResource 函式來繼續列舉。

語法

DWORD WNetOpenEnumA(
  [in]  DWORD          dwScope,
  [in]  DWORD          dwType,
  [in]  DWORD          dwUsage,
  [in]  LPNETRESOURCEA lpNetResource,
  [out] LPHANDLE       lphEnum
);

參數

[in] dwScope

列舉的範圍。 此參數可以是下列其中一個值。

意義
RESOURCE_CONNECTED
列舉所有目前連線的資源。 函式會忽略 dwUsage 參數。 如需詳細資訊,請參閱接下來的<備註>一節。
RESOURCE_CONTEXT
只列舉呼叫端網路內容中的資源。 針對 [網络鄰近地區] 檢視指定此值。 函式會忽略 dwUsage 參數。
RESOURCE_GLOBALNET
列舉網路上的所有資源。
RESOURCE_REMEMBERED
列舉所有記住的 (持續性) 連線。 函式會忽略 dwUsage 參數。

[in] dwType

要列舉的資源類型。 此參數可以是下列值的組合。

意義
RESOURCETYPE_ANY
所有資源。 此值無法與RESOURCETYPE_DISK或RESOURCETYPE_PRINT結合。
RESOURCETYPE_DISK
所有磁碟資源。
RESOURCETYPE_PRINT
所有列印資源。
 

如果網路提供者無法區分列印和磁碟資源,它可以列舉所有資源。

[in] dwUsage

要列舉的資源使用量類型。 此參數可以是下列值的組合。

意義
0
所有資源。
RESOURCEUSAGE_CONNECTABLE
所有可連線的資源。
RESOURCEUSAGE_CONTAINER
所有容器資源。
RESOURCEUSAGE_ATTACHED
如果使用者未通過驗證,設定此值會強制 WNetOpenEnum 失敗。 即使網路允許列舉而不進行驗證,函式仍會失敗。
RESOURCEUSAGE_ALL
設定此值相當於設定RESOURCEUSAGE_CONNECTABLE、RESOURCEUSAGE_CONTAINER和RESOURCEUSAGE_ATTACHED。
 

除非 dwScope 參數等於 RESOURCE_GLOBALNET,否則會忽略此參數。 如需詳細資訊,請參閱接下來的<備註>一節。

[in] lpNetResource

指定要列舉之容器的 NETRESOURCE 結構的指標。 如果 dwScope 參數不是RESOURCE_GLOBALNET,這個參數必須是 NULL

如果此參數為 NULL,則會假設網路根目錄。 (系統會將網路組織為階層;根是 network.) 中最上層的容器

如果此參數不是 NULL,則必須指向 NETRESOURCE 結構。 此結構可由應用程式填入,也可以由呼叫 WNetEnumResource 函式傳回。 NETRESOURCE 結構必須指定容器資源;也就是說,必須在 dwUsage 參數中指定RESOURCEUSAGE_CONTAINER值。

若要列舉所有網路資源,應用程式可以呼叫 WNetOpenEnum ,並將 lpNetResource 參數設定為 NULL,然後使用傳回的句柄呼叫 WNetEnumResource 來列舉資源。 如果 WNetEnumResource 函式傳回的 NETRESOURCE 陣列中的其中一個資源是容器資源,您可以呼叫 WNetOpenEnum 來開啟資源以進行進一步列舉。

[out] lphEnum

列舉句柄的指標,可用於 後續呼叫 WNetEnumResource

傳回值

如果函式成功,傳回值會NO_ERROR。

如果函式失敗,傳回值是 系統錯誤碼,例如下列其中一個值。

傳回碼 Description
ERROR_NOT_CONTAINER
lpNetResource 參數不會指向容器。
ERROR_INVALID_PARAMETER
dwScopedwType 參數無效,或參數組合無效。
ERROR_NO_NETWORK
網路無法使用。
ERROR_EXTENDED_ERROR
發生網路特定的錯誤。 若要取得錯誤的描述,請呼叫 WNetGetLastError 函式。
ERROR_INVALID_ADDRESS
NETRESOURCE 結構中提供的遠端網路資源名稱已解析為無效的網路位址。

備註

如果 dwScope 參數等於RESOURCE_CONNECTED,如果連線是由在呼叫 WNetOpenEnum 函式的應用程式所執行的應用程式所建立的連線,則會省略使用 Microsoft LAN Manager 網路進行的網路連線。 這是因為使用 Microsoft LAN Manager 所建立的連線只會顯示在與建立連線的應用程式相同的登入會話中執行的應用程式。 (若要在列舉中包含連線,應用程式不足以在建立 connection.) 的使用者帳戶中執行

dwScope 參數中RESOURCE_CONTEXT的確切解譯取決於計算機上安裝的網路。

WNetOpenEnum 函式可用來開始列舉單一容器中的資源。 下列範例顯示 Microsoft LAN Manager 網路和 Novell NetWare 網路的階層式結構,並識別容器。

LanMan (container, in this case the provider) 
  ACCOUNTING (container, in this case the domain) 
    \\ACCTSPAY (container, in this case the server) 
      PAYFILES (disk) 
      LASERJET (print) 
 
NetWare (container, in this case the provider) 
  MARKETING (container, in this case the server) 
    SYS (disk, first one on any NetWare server) 
    ANOTHERVOLUME (disk) 
    LASERJET (print) 

範例

如需說明列舉網路上所有資源之應用程式定義函式的程式代碼範例,請參閱 列舉網路資源

注意

winnetwk.h 標頭會將 WNetOpenEnum 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 winnetwk.h
程式庫 Mpr.lib
Dll Mpr.dll

另請參閱

NETRESOURCE

WNetCloseEnum

WNetEnumResource

Windows 網路 (WNet) 概觀

Windows 網路功能