WNetGetResourceInformationA 関数 (winnetwk.h)
ネットワーク リソースへのリモート パスを指定すると、 WNetGetResourceInformation 関数は、リソースを所有するネットワーク プロバイダーを識別し、リソースの種類に関する情報を取得します。 この関数は通常、ユーザーによって入力されたネットワーク パスを解析および解釈するために 、WNetGetResourceParent 関数と組み合わせて使用されます。
構文
DWORD WNetGetResourceInformationA(
[in] LPNETRESOURCEA lpNetResource,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpcbBuffer,
[out] LPSTR *lplpSystem
);
パラメーター
[in] lpNetResource
情報が必要なネットワーク リソースを指定する NETRESOURCE 構造体へのポインター。
構造体の lpRemoteName メンバーは、リソースのリモート パス名を指定する必要があります。通常は、ユーザーによって入力されます。 特に dwType メンバーを指定しない場合は、この操作がメモリを集中的に消費する可能性があるため、lpProvider メンバーと dwType メンバーも既知の場合は入力する必要があります。 これらのメンバーの値がわからない場合は、 それらを NULL に設定する必要があります。 NETRESOURCE 構造体の他のすべてのメンバーは無視されます。
[out] lpBuffer
結果を受け取るバッファーへのポインター。 正常に戻った場合、バッファーの最初の部分は、入力リソースの種類に固有のシステム関数ではなく、WNet 関数を介してアクセスされる入力リソース パスのその部分を表す NETRESOURCE 構造体です。 (バッファーの残りの部分には、 NETRESOURCE 構造体のメンバーがポイントする可変長文字列が含まれています)。
たとえば、入力リモート リソース パスが \server\share\dir1\dir2 の場合、出力 NETRESOURCE 構造体にはリソース \server\share に関する情報が含まれます。 パスの \dir1\dir2 部分には、 ファイル管理機能を使用してアクセスします。 NETRESOURCEの lpRemoteName、lpProvider、dwType、dwDisplayType、dwUsage メンバーが返され、他のすべてのメンバーが NULL に設定されます。
lpRemoteName メンバーは、WNetEnumResource 関数によって列挙から返されたものと同じ構文で返されます。 これにより、呼び出し元は文字列比較を実行して 、WNetGetResourceInformation に渡されるリソースが、 WNetEnumResource への別の呼び出しによって返されるリソースと同じかどうかを判断できます。
[in, out] lpcbBuffer
エントリ時に lpBuffer バッファーのサイズをバイト単位で指定する場所へのポインター。 割り当てるバッファーは、 NETRESOURCE 構造体と、そのメンバーが指す文字列を保持するのに十分な大きさである必要があります。 バッファーが結果に対して小さすぎる場合、この場所は必要なバッファー サイズを受け取り、関数は ERROR_MORE_DATAを返します。
[out] lplpSystem
関数が正常に戻った場合、このパラメーターは、システム関数を介してアクセスされるリソースの部分を指定する出力バッファー内の文字列を指します。 (これは、WNet 関数ではなく、リソースの種類に固有の関数にのみ適用されます)。
たとえば、入力リモート リソース名が \server\share\dir1\dir2 の場合、出力 NETRESOURCE 構造体の lpRemoteName メンバーは \server\share を指します。 また、 lplpSystem パラメーターは \dir1\dir2 を指します。 両方の文字列は、 lpBuffer パラメーターによって指されるバッファーに格納されます。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値はシステム エラー コード (次のいずれかの値など) になります。
リターン コード | 説明 |
---|---|
|
入力 lpRemoteName メンバーは、どのネットワークにも既存のネットワーク リソースではありません。 |
|
入力 dwType メンバーが 、lpRemoteName メンバーで指定されたリソースの種類と一致しません。 |
|
ネットワーク固有のエラーが発生しました。 WNetGetLastError を呼び出して、エラーの説明を取得します。 |
|
lpBuffer パラメーターが指すバッファーが小さすぎます。 |
|
ネットワークが利用できません。 |
注釈
注意
winnetwk.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WNetGetResourceInformation を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnetwk.h |
Library | Mpr.lib |
[DLL] | Mpr.dll |