Compartilhar via


Método IDebugClient3::CreateProcessAndAttachWide (dbgeng.h)

O método CreateProcessAndAttachWide cria um processo de uma linha de comando especificada e, em seguida, anexa a outro processo de modo de usuário. O processo criado é suspenso e só tem permissão para ser executado quando a anexação for concluída. Isso permite sincronização aproximada ao depurar processos de cliente e servidor.

Sintaxe

HRESULT CreateProcessAndAttachWide(
  [in]           ULONG64 Server,
  [in, optional] PWSTR   CommandLine,
  [in]           ULONG   CreateFlags,
  [in]           ULONG   ProcessId,
  [in]           ULONG   AttachFlags
);

Parâmetros

[in] Server

Especifica o servidor de processo a ser usado para anexar ao processo. Se Server for zero, o mecanismo se conectará ao processo local sem usar um servidor de processo.

[in, optional] CommandLine

Especifica a linha de comando a ser executada para criar o novo processo. Se CommandLine for NULL, nenhum processo será criado e esses métodos serão anexados a um processo existente, como o AttachProcess faz.

[in] CreateFlags

Especifica os sinalizadores a serem usados ao criar o processo. Para obter detalhes sobre esses sinalizadores, consulte DEBUG_CREATE_PROCESS_OPTIONS. CreateFlags.

[in] ProcessId

Especifica a ID do processo de destino ao qual o depurador será anexado. Se ProcessId for zero, o depurador será anexado ao processo criado a partir de CommandLine.

[in] AttachFlags

Especifica os sinalizadores que controlam como o depurador é anexado ao processo de destino. Para obter detalhes sobre esses sinalizadores, consulte DEBUG_ATTACH_XXX.

Retornar valor

Esse método também pode retornar valores de erro. Consulte Valores retornados para obter mais detalhes.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.

Comentários

Esse método está disponível apenas para depuração dinâmica do modo de usuário.

Se CommandLine não for NULL e ProcessId não for zero, o mecanismo criará o processo em um estado suspenso. O mecanismo retomará esse processo recém-criado depois de se conectar com êxito ao processo especificado em ProcessId.

O mecanismo não se anexa completamente ao processo até que o método WaitForEvent seja chamado. Somente depois que o processo tiver gerado um evento , por exemplo, o evento create-process , ele ficará disponível na sessão do depurador.

Para obter mais informações sobre como criar e anexar a destinos dinâmicos do modo de usuário, consulte Destinos do Live User-Mode.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dbgeng.h (inclua Dbgeng.h)

Confira também

.attach (Anexar ao Processo)

.create (Criar Processo)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess