Identificadores e identificadores de processo

Quando um novo processo é criado pela função CreateProcess , os identificadores do novo processo e seu thread primário são retornados. Esses identificadores são criados com direitos de acesso completos e , sujeitos à verificação de acesso de segurança, podem ser usados em qualquer uma das funções que aceitam identificadores de thread ou processo. Esses identificadores podem ser herdados por processos filho, dependendo do sinalizador de herança especificado quando eles são criados. Os identificadores são válidos até serem fechados, mesmo depois que o processo ou thread que eles representam tiver sido encerrado.

A função CreateProcess também retorna um identificador que identifica exclusivamente o processo em todo o sistema. Um processo pode usar a função GetCurrentProcessId para obter seu próprio identificador de processo (também conhecido como ID do processo ou PID). O identificador é válido desde o momento em que o processo é criado até que o processo seja encerrado. Um processo pode usar a função Process32First para obter o identificador de processo de seu processo pai.

Se você tiver um identificador de processo, poderá obter o identificador do processo chamando a função OpenProcess . O OpenProcess permite que você especifique os direitos de acesso do identificador e se ele pode ser herdado.

Um processo pode usar a função GetCurrentProcess para recuperar um pseudo-identificador para seu próprio objeto de processo. Esse pseudo-identificador é válido apenas para o processo de chamada; não pode ser herdado ou duplicado para uso por outros processos. Para obter o identificador real para o processo, chame a função DuplicateHandle .