Win32 API 日本語リファレンス
ホーム › NetworkManagement.WNet › PF_NPGetResourceInformation

PF_NPGetResourceInformation

コールバック

シグネチャ

DWORD PF_NPGetResourceInformation(
    NETRESOURCEW* lpNetResource,
    void* lpBuffer,
    DWORD* lpBufferSize,
    LPWSTR* lplpSystem
);

パラメーター

フィールド型説明
lpNetResourceNETRESOURCEW*

情報を取得する対象のネットワークリソースを指定します。 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" が実際に存在するかどうかまで確認する必要はありません。

lpBuffervoid*

結果を受け取るバッファーへのポインターです。 結果の先頭のフィールドは、単一の NETRESOURCE 構造体とそれに関連する文字列で、入力リソースのうち、リソースの種類に固有のシステム API ではなく WNet API を通じてアクセスされる部分を表します。 たとえば、入力のリモートリソース名が "\server\share\dir1\dir2" であった場合、出力される NETRESOURCE にはリソース "\server\share" に関する情報が格納されます。 lpRemoteName、lpProvider、dwType、dwDisplayType、dwUsage の各フィールドには値が設定されて返され、その他のフィールドはすべて NULL に設定されます。

lpRemoteName フィールドは、 NPEnumResource 関数による列挙で返されるものと同じ形式で返す必要があります。これにより、呼び出し元は大文字と小文字を区別する文字列比較を行えます。 これは、出力されたネットワークリソースが NPEnumResource が返したものと同じかどうかを判断するために必要です。

プロバイダーは、自身がそのリソースを所有しているかどうかを判断するために、純粋に構文上のチェックだけを行ってはなりません。 クライアント上で 2 つのネットワークが動作していて、構文上のチェックだけを行うプロバイダーが先に呼び出された場合、誤った結果になる可能性があります。

lpBufferSizeDWORD*lpBuffer が指すバッファーのサイズ(バイト単位)を格納した場所へのポインターです。 バッファーが結果を格納するには小さすぎる場合、この関数は必要なバッファーサイズをこの場所に格納し、エラー WN_MORE_DATA を返します。
lplpSystemLPWSTR*正常に復帰した場合、出力バッファー内にある null で終わる文字列へのポインターです。この文字列は、リソースのうち、WNet API ではなくリソースの種類に固有のシステム API を通じてアクセスされる部分を示します。 そのような部分が無い場合、lplpSystem には NULL が設定されます。 たとえば、入力のリモートリソース名が "\server\share\dir" であった場合、lpRemoteName は "\server\share" を指して返され、lplpSystem は "\dir" を指します。どちらの文字列も lpBuffer が指すバッファーに格納されます。

公式ドキュメント

ネットワークリソースのうち、WNet API を通じてアクセスされる部分と、リソースの種類に固有の API を通じてアクセスされる部分を分離します。

戻り値

関数が成功した場合は WN_SUCCESS を返します。失敗した場合はエラーコードを返します。エラーコードは次のいずれかです。

戻り値 説明
WN_MORE_DATA
入力バッファーが小さすぎます。
WN_BAD_NETNAME
このプロバイダーはそのリソースを認識できません。
WN_BAD_VALUE
dwUsage または dwType が無効です。
WN_BAD_DEV_TYPE
呼び出し元が渡した 0 以外の dwType が、ネットワークリソースの実際の種類と一致しません。
WN_NOT_AUTHENTICATED
呼び出し元がネットワークに対して認証されていません。
WN_ACCESS_DENIED
呼び出し元はネットワークに対して認証されていますが、十分なアクセス許可がありません。

解説(Remarks)

名前付きのネットワークリソースから列挙ツリーを下方向にたどるには、 NPOpenEnum とその関連関数を使用します。 名前付きリソースから上方向にたどるには、NPGetResourceInformation 関数を呼び出してリソースに関する情報を取得し、続いて NPGetResourceParent 関数を呼び出して親リソースの名前と種類を取得します。

NPGetResourceInformation は、指定されたプロバイダーが、指定されたネットワークリソースに対する要求に応答する正しいプロバイダーかどうかを判断します。 その後、リソースの種類に関する情報を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)