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の lpRemoteNamelpProviderdwTypedwDisplayTypedwUsage メンバーが返され、他のすべてのメンバーが 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。

関数が失敗した場合、戻り値はシステム エラー コード (次のいずれかの値など) になります。

リターン コード 説明
ERROR_BAD_NET_NAME
入力 lpRemoteName メンバーは、どのネットワークにも既存のネットワーク リソースではありません。
ERROR_BAD_DEV_TYPE
入力 dwType メンバーが 、lpRemoteName メンバーで指定されたリソースの種類と一致しません。
ERROR_EXTENDED_ERROR
ネットワーク固有のエラーが発生しました。 WNetGetLastError を呼び出して、エラーの説明を取得します。
ERROR_MORE_DATA
lpBuffer パラメーターが指すバッファーが小さすぎます。
ERROR_NO_NETWORK
ネットワークが利用できません。

注釈

注意

winnetwk.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WNetGetResourceInformation を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winnetwk.h
Library Mpr.lib
[DLL] Mpr.dll

こちらもご覧ください

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceParent

WNetGetUniversalName

Windows ネットワーク (WNet) の概要

Windows ネットワーク関数