Compartilhar via


Função ADsSetLastError (adshlp.h)

O ADsSetLastError define o valor do código do último erro para o thread de chamada. Os provedores de serviços de diretório podem usar essa função para definir erros estendidos. A função salva os dados de erro em uma estrutura de dados por thread. ADsSetLastError opera semelhante à função SetLastError .

Sintaxe

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

Parâmetros

[in] dwErr

Tipo: DWORD

O código de erro que ocorreu. Se esse for um erro definido pelo Windows, pszError será ignorado. Se for ERROR_EXTENDED_ERROR, isso indicará que o provedor tem um erro específico de rede para relatar.

[in] pszError

Tipo: LPWSTR

A cadeia de caracteres Unicode terminada em nulo que descreve o erro específico da rede.

[in] pszProvider

Tipo: LPWSTR

A cadeia de caracteres Unicode terminada em nulo que nomeia o provedor ADSI que gerou o erro.

Retornar valor

Nenhum

Comentários

Em uma implementação personalizada de um provedor ADSI, por exemplo, um provedor LDAP, você pode definir uma mensagem de erro de operação da seguinte maneira.

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

O usuário pode usar o exemplo de código a seguir para examinar esse código de operação.

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);
}

O exemplo de código anterior produz a saída a seguir para o código de erro de operações definido acima.

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

Se você usar ERROR_DS_OPERATIONS_ERROR sem invocar a macro HRESULT_FROM_WIN32 ao definir o erro, a saída a seguir será retornada.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho adshlp.h
Biblioteca Activeds.lib
DLL Activeds.dll

Confira também

Códigos de erro ADSI

Funções ADSI

ADsGetLastError

SetLastError