NPGetResourceInformation 関数 (npapi.h)
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を返す必要があります。 それ以外の場合は、次のいずれかのエラー コードを返す必要があります。
リターン コード | 説明 |
---|---|
|
入力バッファーが小さすぎます。 |
|
リソースは、このプロバイダーによって認識されません。 |
|
dwUsage または dwType が無効です。 |
|
呼び出し元は、ネットワーク リソースの実際の型と一致しない 0 以外の dwType を渡しました。 |
|
呼び出し元がネットワークに対して認証されていません。 |
|
呼び出し元はネットワークに対して認証されていますが、十分なアクセス許可がありません。 |
注釈
列挙ツリーは、 NPOpenEnum とそれに関連する関数を使用して、名前付きネットワーク リソースから下に移動できます。 名前付きリソースから上に移動するには、 NPGetResourceInformation 関数を呼び出してリソースに関する情報を取得し、その後 に NPGetResourceParent 関数を呼び出して親リソースの名前と種類を取得できます。
NPGetResourceInformation は、指定したプロバイダーが、指定したネットワーク リソースの要求に応答するための適切なプロバイダーであるかどうかを判断します。 次に、リソースの種類に関する情報を返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | npapi.h |