次の方法で共有


MPR に値を返す

Windows ネットワーク関数は、成功するとWN_SUCCESSを返すか、関数でエラーが発生した場合は一意の 0 以外の値を返します。 さらに、 WNetSetLastErrorSetLastError を使用して、拡張エラー情報を返します。

上記の動作をサポートするために、ネットワーク プロバイダー関数は、 を返す前に SetLastError を呼び出さないでください。 これは、MPR が返された後、ネットワーク プロバイダー API の関数に対して SetLastError を呼び出すからです。 ネットワーク プロバイダーが SetLastError を直接呼び出すと、冗長関数呼び出しが行われます。 ネットワーク プロバイダー関数は、単にエラー コードを返す必要があります。 エラー コードは、関数の説明または 戻り値で指定します。 また、ネットワーク プロバイダー関数は、メモリ不足などの システム エラー コードを返す場合があります。 唯一の例外は NPGetCaps で、ネットワーク プロバイダーでサポートされている関数を示すマスクを返す必要があります。

ネットワーク プロバイダー関数が拡張エラー情報を返す必要がある場合は、 WNetSetLastError を呼び出す必要があります。 この機能は、ネットワーク プロバイダーで使用するために Windows オペレーティング システムによって提供されます。 プロバイダーが WNetSetLastError を呼び出すときに、エラーに関する追加情報を含む文字列を設定できます。 この情報は、スレッドごとに格納されます。 これは、Windows アプリケーションの SetLastError に似ています。 Windows オペレーティング システムは WNetSetLastError を呼び出して WNetSetLastError を使用して格納された文字列をチェックし、見つかった場合は、ネットワーク要求を開始した呼び出し元アプリケーションに拡張エラー情報を返します。

注意

WNetSetLastError の WNet プレフィックスは、WNetSetLastError とは異なり、この API が Windows ネットワーク API セットに含まれていないため、誤解を招く可能性があります。 WNetSetLastError は、ネットワーク プロバイダーでのみ使用することを目的としています。 名前 WNetSetLastError は、既存のプロバイダーとの互換性のために保持されます。