次の方法で共有


ADsSetLastError 関数 (adshlp.h)

ADsSetLastError は、呼び出し元スレッドの最後のエラー コード値を設定します。 ディレクトリ サービス プロバイダーは、この関数を使用して拡張エラーを設定できます。 関数は、エラー データをスレッドごとのデータ構造に保存します。 ADsSetLastErrorSetLastError 関数と同様に動作します。

構文

void ADsSetLastError(
  [in] DWORD   dwErr,
  [in] LPCWSTR pszError,
  [in] LPCWSTR pszProvider
);

パラメーター

[in] dwErr

型: DWORD

発生したエラー コード。 これが Windows によって定義されたエラーの場合、 pszError は無視されます。 これがERROR_EXTENDED_ERROR場合は、プロバイダーに報告するネットワーク固有のエラーがあることを示します。

[in] pszError

種類: LPWSTR

ネットワーク固有のエラーを説明する null で終わる Unicode 文字列。

[in] pszProvider

種類: LPWSTR

エラーを発生させた ADSI プロバイダーの名前を示す null で終わる Unicode 文字列。

戻り値

なし

解説

ADSI プロバイダーのカスタム実装 (LDAP プロバイダーなど) では、次のように操作エラー メッセージを設定できます。

ADsSetLastError(HRESULT_FROM_WIN32(ERROR_DS_OPERATIONS_ERROR),
                L"ERROR_DS_OPERATIONS_ERROR",
                L"LDAP Provider");

ユーザーは、次のコード例を使用して、この操作コードを調べることができます。

DWORD dwLastError;
WCHAR szErrorBuf[MAX_PATH];
WCHAR szNameBuf[MAX_PATH];
// Get extended error value.
HRESULT hr_return =S_OK;
hr_return = ADsGetLastError( &dwLastError,
                               szErrorBuf,
                               MAX_PATH,
                               szNameBuf,
                               MAX_PATH);
if (SUCCEEDED(hr_return))
{
    wprintf(L"Error Code: %d\n Error Text: %ws\n Provider: %ws\n", dwLastError, szErrorBuf, szNameBuf);
}

前のコード例では、上記で設定した操作エラー コードに対して次の出力が生成されます。

Error value: 80072020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider

エラーの設定時 にHRESULT_FROM_WIN32 マクロを呼び出さずにERROR_DS_OPERATIONS_ERRORを使用すると、次の出力が返されます。

Error value: 2020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー adshlp.h
Library Activeds.lib
[DLL] Activeds.dll

こちらもご覧ください

ADSI エラー コード

ADSI 関数

ADsGetLastError

SetLastError