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 構造体と関連付けられた文字列です。これは、リソースの種類に固有のシステム API ではなく、WNet API を介してアクセスされる入力リソースのその部分を表します。 たとえば、入力されたリモート リソース名が "\server\share\dir1\dir2" の場合、出力 NETRESOURCE にはリソース "\server\share" に関する情報が含まれます。 lpRemoteName、lpProvider、dwType、dwDisplayType、dwUsage の各フィールドには、NULL に設定されている値を含む他のすべてのフィールドが返されます。
呼び出し元が大文字と小文字を区別する文字列比較を実行できるように、 lpRemoteName フィールドは NPEnumResource 関数によって列挙から返される形式と同じ形式で返される必要があります。 これは、出力ネットワーク リソースが NPEnumResource によって返されたものと同じであるかどうかを判断するために必要です。
プロバイダーがリソースを所有しているかどうかを判断するために、純粋に構文チェックを行わないでください。 これにより、クライアントで 2 つのネットワークが実行されていて、構文チェックを実行しているプロバイダーが最初に呼び出されると、正しくない結果が生成される可能性があります。
[in, out] lpBufferSize
lpBuffer が指すバッファーのサイズをバイト単位で指定する場所へのポインター。 バッファーが結果に対して小さすぎる場合、関数は必要なバッファー サイズをこの場所に配置し、エラー WN_MORE_DATAを返します。
[out] lplpSystem
正常に返された場合、WNet API ではなく、リソースの種類に固有のシステム API を介してアクセスされるリソースのその部分を指定する、出力バッファー内の null で終わる文字列へのポインター。 そのような部分がない場合、 lplpSystem は NULL に設定されます。 たとえば、入力されたリモート リソース名が "\server\share\dir" の場合、 lpRemoteName は "\server\share" を指し、 lplpSystem は "\dir" を指し、両方の文字列が lpBuffer が指すバッファーに格納されます。
戻り値
関数が成功すると、WN_SUCCESSが返されます。 それ以外の場合は、次のいずれかのエラー コードが返されます。
| リターン コード | Description |
|---|---|
|
入力バッファーが小さすぎます。 |
|
リソースは、このプロバイダーによって認識されません。 |
|
無効な dwUsage または dwType。 |
|
ネットワーク リソースの実際の型と一致しない 0 以外の dwType で渡された呼び出し元。 |
|
呼び出し元がネットワークに対して認証されていません。 |
|
呼び出し元はネットワークに対して認証されていますが、十分なアクセス許可がありません。 |
注釈
列挙ツリーは、 NPOpenEnum とその関連関数を使用して、名前付きネットワーク リソースから下に移動できます。 名前付きリソースから上に移動するには、 NPGetResourceInformation 関数を呼び出してリソースに関する情報を取得し、その後に NPGetResourceParent 関数を 呼び出して親リソースの名前と種類を取得できます。
NPGetResourceInformation は、指定したプロバイダーが、指定されたネットワーク リソースの要求に応答する適切なプロバイダーであるかどうかを判断します。 その後、リソースの種類に関する情報が返されます。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | npapi.h |
| Library | davclnt.lib |