Função DrtOpen (drt.h)

A função DrtOpen cria uma instância da Tabela de Roteamento Distribuído local em relação aos critérios especificados pela estrutura DRT_SETTINGS .

Sintaxe

HRESULT DrtOpen(
  [in]           const DRT_SETTINGS *pSettings,
  [in]           HANDLE             hEvent,
  [in, optional] const PVOID        pvContext,
  [out]          HDRT               *phDrt
);

Parâmetros

[in] pSettings

Ponteiro para a estrutura DRT_SETTINGS que especifica as configurações usadas para a criação da instância drt.

[in] hEvent

Identificador para o evento sinalizado quando ocorre um evento.

[in, optional] pvContext

Dados de contexto definidos pelo usuário que são passados para o aplicativo por meio de eventos.

[out] phDrt

O novo identificador associado ao DRT. Isso é usado em todas as operações futuras na instância drt.

Valor retornado

Essa função retorna S_OK em caso de êxito. Outros valores possíveis incluem:

Código de retorno Descrição
E_INVALIDARG
phDrt é NULL.
DRT_E_INVALID_SETTINGS
pSettings é NULL ou o valor de membro dwSize de DRT_SETTINGS não é igual ao tamanho do objeto DRT_SETTINGS .
DRT_E_INVALID_KEY_SIZE
cbKey não é igual a 256 bits.
DRT_E_INVALID_MAX_ADDRESSES
O membro ulMaxRoutingAddresses de DRT_SETTINGS especifica menos de 1 ou mais de 20 como o número máximo de endereços.
DRT_E_INVALID_TRANSPORT_PROVIDER
O membro hTransport no DRT_SETTINGS é NULL ou alguns campos do Transporte são NULL
DRT_E_INVALID_SECURITY_MODE
O membro eSecurityMode do DRT_SETTINGS especifica um modo de segurança inválido.
DRT_E_INVALID_SECURITY_PROVIDER
O membro pSecurityProvider do DRT_SETTINGS é NULL.
DRT_E_INVALID_BOOTSTRAP_PROVIDER
O membro pBootstrapProvider do DRT_SETTINGS é NULL ou alguns campos do provedor de inicialização são NULL.
DRT_E_INVALID_INSTANCE_PREFIX
O tamanho do pwzDrtInstancePrefix especificado em DRT_SETTINGS é maior que o comprimento máximo do prefixo (128).
E_OUTOFMEMORY
O sistema não pode alocar memória para esta operação.
DRT_E_BOOTSTRAPPROVIDER_IN_USE
O provedor de inicialização já está anexado.
DRT_E_SECURITYPROVIDER_IN_USE
O provedor de segurança já está anexado.
DRT_TRANSPORTPROVIDER_IN_USE
O provedor de transporte já está anexado.
DRT_E_INVALID_CERT_CHAIN
A cadeia de certificação é inválida.
DRT_E_CAPABILITY_MISMATCH
O certificado local não pode ser NULL no DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD segurança.
DRT_E_TRANSPORT_SHUTTING_DOWN
O transporte está sendo desligado.
DRT_E_TRANSPORT_ALREADY_BOUND
O transporte já está associado.
DRT_S_RETRY
O provedor de inicialização não conseguiu localizar outros nós, mas pode ter êxito em uma segunda tentativa.
DRT_E_TRANSPORT_INVALID_ARGUMENT
O parâmetro do provedor de transporte é NULL ou inválido.
DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED
O transporte não está anexado.
E_FAIL
Ocorreu um erro fatal inesperado.

Comentários

Depois que DrtOpen for chamado, o DRT iniciará o procedimento de inicialização e passará para o estado DRT_ACTIVE ou DRT_ALONE , dependendo do sucesso da inicialização.

Requisitos

   
Cliente mínimo com suporte Windows 7 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho drt.h
Biblioteca Drt.lib
DLL Drt.dll

Confira também

DRT_SETTINGS

DrtClose