Udostępnij przez


Obsługa procesów i identyfikatory

Po utworzeniu nowego procesu przez funkcję CreateProcess są zwracane dojścia nowego procesu i jego wątku podstawowego. Te dojścia są tworzone z pełnymi prawami dostępu i — pod kątem kontroli dostępu zabezpieczeń — mogą być używane w dowolnej funkcji, która akceptuje dojścia wątku lub procesu. Te dojścia mogą być dziedziczone przez procesy podrzędne, w zależności od flagi dziedziczenia określonej podczas ich tworzenia. Uchwyty są prawidłowe do momentu zamknięcia, nawet po zakończeniu procesu lub wątku, który reprezentuje.

Funkcja CreateProcess zwraca również identyfikator, który jednoznacznie identyfikuje proces w całym systemie. Proces może użyć funkcji GetCurrentProcessId, aby uzyskać własny identyfikator procesu (znany również jako identyfikator procesu lub PID). Identyfikator jest prawidłowy od momentu utworzenia procesu do momentu zakończenia procesu. Proces może używać funkcji Process32First w celu uzyskania identyfikatora procesu procesu nadrzędnego.

Jeśli masz identyfikator procesu, możesz uzyskać dojście procesu, wywołując funkcję OpenProcess. OpenProcess umożliwia określenie praw dostępu do dojścia i tego, czy można go dziedziczyć.

Proces może użyć funkcji GetCurrentProcess w celu pobrania pseudo uchwytu do własnego obiektu procesu. Ten pseudo uchwyt jest prawidłowy tylko w przypadku procesu wywołującego; Nie można go dziedziczyć ani duplikować do użytku przez inne procesy. Aby uzyskać rzeczywistą obsługę procesu, wywołaj funkcję DuplicateHandle.