將透過 WNet API 存取的網路資源部分,與透過資源類型專屬 API 存取的元件區隔開。
語法
DWORD NPGetResourceInformation(
[in] LPNETRESOURCEW lpNetResource,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpBufferSize,
[out] LPWSTR *lplpSystem
);
參數
[in] lpNetResource
指定需要資訊的網路資源。 lpRemoteName 欄位會指定資源的遠端名稱。 如果呼叫程式知道這些值,則應該填入 lpProvider 和 dwType 欄位的值;否則,它應該將這些欄位設定為 NULL。 NETRESOURCE 中的所有其他欄位都會被忽略,而且不會起始設定。
如果 lpRemoteName 字串包含透過 WNet API 存取的部分,以及透過資源類型特定的其他系統 API 存取的部分,函式應該只傳回資源網路部分的相關資訊 ( lplpSystem 除外,如本主題稍後所述) 。
例如,如果資源是 “\server\share\dir1\dir2”,其中 “\server\share” 是通過 WNet API 訪問,而 “\dir1\dir2” 是通過文件系統 API 訪問的,提供者應該確認它是 “\server\share” 的正確提供者,但不需要檢查 “\dir1\dir2” 是否實際存在。
[out] lpBuffer
緩衝區的指標以接收結果。 結果中的第一個欄位是單一 NETRESOURCE 結構,以及相關聯的字串,代表透過 WNet API 存取的輸入資源部分,而不是資源類型特定的系統 API。 例如,如果輸入遠端資源名稱是 “\server\share\dir1\dir2”,則輸出 NETRESOURCE 包含資源 “\server\share” 的相關資訊。 會傳回 lpRemoteName、 lpProvider、 dwType、 dwDisplayType 和 dwUsage 欄位,其中包含值,所有其他欄位都會設定為 Null。
lpRemoteName 欄位的傳回格式應該與 NPEnumResource 函式從列舉傳回的格式相同,讓呼叫端可以執行區分大小寫的字串比較。 這是判斷輸出網路資源是否與 NPEnumResource 所傳回的資源相同。
提供者不應該執行純語法檢查,以判斷它是否擁有資源。 當用戶端上執行兩個網路,且先呼叫執行語法檢查的提供者時,這可能會產生不正確的結果。
[in, out] lpBufferSize
位置的指標,指定 lpBuffer 所指向的緩衝區大小 (以位元組為單位)。 如果緩衝區對於結果來說太小,函式會將所需的緩衝區大小放在此位置,並傳回錯誤WN_MORE_DATA。
[out] lplpSystem
成功傳回時,輸出緩衝區中以 Null 結尾字串的指標,指定透過資源類型特定的系統 API 存取的資源部分,而不是透過 WNet API。 如果沒有這部分,則 lplpSystem 會設定為 Null。 例如,如果輸入遠端資源名稱是 “\server\share\dir”,則會傳回指向 “\server\share” 的 lpRemoteName ,而 lplpSystem 指向 “\dir”,這兩個字串都會儲存在 lpBuffer 所指向的緩衝區中。
返回值
如果函式成功,它應該會傳回WN_SUCCESS。 否則,它應該會傳回錯誤碼,這可能是下列其中一項。
| 回傳碼 | Description |
|---|---|
|
輸入緩衝區太小。 |
|
此提供者無法辨識資源。 |
|
無效的 dwUsage 或 dwType。 |
|
呼叫端傳入不符合網路資源實際類型的非零 dwType 。 |
|
呼叫者尚未通過網路身份驗證。 |
|
呼叫者已通過網路身份驗證,但沒有足夠的許可權。 |
備註
列舉樹狀結構可以使用 NPOpenEnum 及其相關函式,從具名網路資源向下導覽。 若要從具名資源向上流覽,可以呼叫 NPGetResourceInformation 函式來取得資源的相關資訊,後面接著 NPGetResourceParent 函式來取得父資源的名稱和類型。
NPGetResourceInformation 會判斷指定的提供者是否是回應指定網路資源要求的正確提供者。 然後,它會傳回資源類型的相關資訊。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | npapi.h |
| Library | davclnt.lib |