Compartilhar via


IClientVirtualDevice::GetCommand (VDI)

Aplica-se: SQL Server

A função GetCommand é usada para obter o próximo comando enfileirado para um dispositivo. Quando solicitada, essa função aguarda o próximo comando.

Sintaxe

HRESULT IClientVirtualDevice::GetCommand (
   DWORD               dwTimeOut,
   VDC_Command**      const ppCmd
);

Parâmetros

ppCmd Quando um comando é retornado com êxito, o parâmetro retorna o endereço de um comando a ser executado. A memória retornada é somente leitura. Quando o comando é concluído, esse ponteiro é passado para a rotina CompleteCommand. Para obter mais informações sobre cada comando, confira Comandos.

dwTimeOut Este é o tempo de espera, em milissegundos. Use INFINITE para aguardar indefinidamente. Use 0 para sondar um comando. VD_E_TIMEOUT será retornado se nenhum comando estiver disponível no momento. Se o tempo limite esgotar, o cliente decidirá a próxima ação.

Valor de retorno

Valor de retorno Explicação
NOERROR Foi efetuado fetch de um comando.
VD_E_CLOSE O dispositivo foi fechado pelo servidor.
VD_E_TIMEOUT Nenhum comando estava disponível e o tempo limite expirou.
VD_E_ABORT O cliente ou o servidor usou o SignalAbort para forçar um desligamento.

Comentários

Quando VD_E_CLOSE é retornado, o SQL Server fecha o dispositivo. Isso faz parte do desligamento normal. Depois que todos os dispositivos forem fechados, o cliente invocará IClientVirtualDeviceSet2::Close para fechar o conjunto de dispositivos virtuais.

Quando essa rotina precisa ser bloqueada para aguardar um comando, o thread é deixado em uma condição Passível de Alerta.

Próximas etapas

Para obter mais informações, confira a Visão geral da referência da interface de dispositivo virtual do SQL Server.