Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Gdy nowy wątek zostanie utworzony przez funkcję CreateThread lub CreateRemoteThread, zwracany jest uchwyt wątku. Domyślnie do tego dojście ma pełne prawa dostępu i — pod kątem sprawdzania dostępu zabezpieczeń — może być używane w dowolnej funkcji, która akceptuje uchwyt wątku. Ten uchwyt może być dziedziczony przez procesy podrzędne, w zależności od flagi dziedziczenia określonej podczas jej tworzenia. Dojście można duplikować za pomocą DuplicateHandle, co umożliwia utworzenie uchwytu wątku z podzbiorem praw dostępu. Uchwyt jest prawidłowy do momentu zamknięcia, nawet po zakończeniu wątku, który reprezentuje.
Funkcje CreateThread i CreateRemoteThread zwracają również identyfikator, który jednoznacznie identyfikuje wątek w całym systemie. Wątek może używać funkcji GetCurrentThreadId, aby uzyskać własny identyfikator wątku. Identyfikatory są prawidłowe od momentu utworzenia wątku do momentu zakończenia wątku. Należy pamiętać, że żaden identyfikator wątku nigdy nie będzie 0.
Jeśli masz identyfikator wątku, możesz uzyskać dojście wątku, wywołując funkcję OpenThread. OpenThread umożliwia określenie praw dostępu do dojścia i tego, czy można go odziedziczyć.
Wątek może używać funkcji GetCurrentThread w celu pobrania pseudo uchwytu do własnego obiektu wątku. 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ć rzeczywiste dojście do wątku, biorąc pod uwagę pseudo uchwyt, użyj funkcji DuplicateHandle.
Aby wyliczyć wątki procesu, użyj funkcji Thread32First i Thread32Next.