Creating a Process
9/8/2008
Para iniciar um processo a partir de outro processo, chamar a função CreateProcess, que carrega um novo aplicativo na memória e cria um processo com at least um segmento.
O seguinte mostra exemplo de código o CreateProcess função protótipo:
BOOL CreateProcess(LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation );
Porque Windows Embedded CE não suporte de segurança ou atual diretórios e não identificador herança, a maioria dos parâmetros devem ser definidos como NULL ou zero.
O seguinte exemplo de código mostra o protótipo função quando todos os sem suporte a funcionalidade é levada em consideração:
BOOL CreateProcess(LPCTSTR lpApplicationName,
LPTSTR lpCommandLine, NULL, NULL, FALSE,
DWORD dwCreationFlags, NULL, NULL, NULL,
LPPROCESS_INFORMATION lpProcessInformation );
O primeiro parâmetro, lpApplicationName, deve conter um ponteiro para o nome do aplicativo para iniciar. Windows Embedded CE não suporte passando NULL para lpApplicationName e aparência para o aplicativo no seguinte diretórios, a seguinte ordem:
- O caminho especificado na lpApplicationName, se um estiver listado
- O diretório do Windows
- O Diretório raiz em armazenar o objeto (\)
- Um caminho OEM-specified pesquisa
O lpCommandLine parâmetro especifica o linha de comando para transmitir para o novo processo. O linha de comando deve ser passado como um seqüência de caracteres Unicode.
O dwCreationFlags parâmetro especifica a estado inicial do processo após o carregamento.
A seguinte tabela descreve todos os sinalizadores com suporte.
Sinalizador | Descrição |
---|---|
0 |
Cria um padrão processo. |
CREATE_SUSPENDED |
Cria um processo com um primário suspenso segmento. |
DEBUG_PROCESS |
Cria um processo a ser depurado pela processo de chamada. |
DEBUG_ONLY_THIS_PROCESS |
Cria um processo a ser depurado pelo processo de chamada, mas não depuração quaisquer processos filho que são iniciados pelo processo sendo depurado. Esse sinalizador deve ser usado com DEBUG_PROCESS. |
CREATE_NEW_CONSOLE |
Cria um console. |
O último parâmetro usado pelo CreateProcess é lpProcessInformation. Este parâmetro aponta para a estrutura PROCESS_INFORMATION, que contém dados sobre o novo processo. Este parâmetro também pode ser definido para NULL.
Se o processo não pode executar, CreateProcess retorna FALSE. Para obter mais informações sobre a falha, chamar a função GetLastError.