Compartilhar via


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

O método CreateProcessAndAttachWide cria um processo a partir 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 AttachProcess.

[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 que ele criou 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.

Valor de retorno

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

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

Observações

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

Se CommandLine não estiver 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 é completamente anexado ao processo até que o método WaitForEvent tenha sido 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 de modo de usuário dinâmico, consulte de Destinos do Live User-Mode .

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho dbgeng.h (inclua Dbgeng.h)

Consulte também

.attach (Anexar ao Processo)

.create (Criar Processo)

AbandonCurrentProcess

do AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

detachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess