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.
System Microsoft Windows umożliwia kontrolowanie dostępu do obiektów wątków. Aby uzyskać więcej informacji na temat zabezpieczeń, zobacz Access-Control Model.
Deskryptor zabezpieczeń można określić dla wątku podczas wywoływania CreateProcess, createProcessAsUser, CreateProcessWithLogonW, CreateThreadlub CreateRemoteThread. Jeśli określisz NULL, wątek pobiera domyślny deskryptor zabezpieczeń. Listy ACL w domyślnym deskryptorze zabezpieczeń dla wątku pochodzą z podstawowego lub personifikacyjnego tokenu twórcy.
Aby pobrać deskryptor zabezpieczeń wątku, wywołaj funkcję GetSecurityInfo. Aby zmienić deskryptor zabezpieczeń wątku, wywołaj funkcję SetSecurityInfo.
Dojście zwrócone przez funkcję CreateThread ma THREAD_ALL_ACCESS dostęp do obiektu wątku. Po wywołaniu funkcji GetCurrentThread system zwraca pseudohandle z maksymalnym dostępem, który deskryptor zabezpieczeń wątku zezwala na obiekt wywołujący.
Prawidłowe prawa dostępu dla obiektów wątków obejmują standardowych praw dostępu i niektórych praw dostępu specyficznych dla wątków. W poniższej tabeli wymieniono standardowe prawa dostępu używane przez wszystkie obiekty.
| Wartość | Znaczenie |
|---|---|
| DELETE (0x00010000L) | Wymagane do usunięcia obiektu. |
| READ_CONTROL (0x00020000L) | Wymagane do odczytu informacji w deskryptorze zabezpieczeń dla obiektu, a nie w tym informacji w SACL. Aby odczytać lub zapisać SACL, musisz zażądać ACCESS_SYSTEM_SECURITY prawa dostępu. Aby uzyskać więcej informacji, zobacz SACL Access Right. |
| SYNC (0x00100000L) | Prawo do używania obiektu do synchronizacji. Dzięki temu wątek może czekać, aż obiekt będzie w stanie sygnału. |
| WRITE_DAC (0x00040000L) | Wymagane do zmodyfikowania listy DACL w deskryptorze zabezpieczeń dla obiektu. |
| WRITE_OWNER (0x000800000L) | Wymagane do zmiany właściciela w deskryptorze zabezpieczeń dla obiektu. |
W poniższej tabeli wymieniono prawa dostępu specyficzne dla wątku.
| Wartość | Znaczenie |
|---|---|
| SYNC (0x00100000L) | Umożliwia korzystanie z uchwytu wątku w dowolnej funkcji oczekiwania . |
| THREAD_ALL_ACCESS | Wszystkie możliwe prawa dostępu dla obiektu wątku.Windows Server 2003 i Windows XP: Wartość flagi THREAD_ALL_ACCESS wzrosła w systemach Windows Server 2008 i Windows Vista. Jeśli aplikacja skompilowana dla systemu Windows Server 2008 i Windows Vista jest uruchomiona w systemie Windows Server 2003 lub Windows XP, flaga THREAD_ALL_ACCESS zawiera bity dostępu, które nie są obsługiwane, a funkcja określająca tę flagę kończy się niepowodzeniem z ERROR_ACCESS_DENIED. Aby uniknąć tego problemu, określ minimalny zestaw praw dostępu wymaganych do operacji. Jeśli THREAD_ALL_ACCESS należy użyć, ustaw _WIN32_WINNT na minimalny system operacyjny przeznaczony dla aplikacji (na przykład #define _WIN32_WINNT _WIN32_WINNT_WINXP). Aby uzyskać więcej informacji, zobacz Using the Windows Headers. |
| THREAD_DIRECT_IMPERSONATION (0x0200) | Wymagane dla wątku serwera, który personifikuje klienta. |
| THREAD_GET_CONTEXT (0x0008) | Wymagane do odczytania kontekstu wątku przy użyciu GetThreadContext. |
| THREAD_IMPERSONATE (0x0100) | Wymagane do bezpośredniego używania informacji zabezpieczających wątku bez wywoływania go za pomocą mechanizmu komunikacyjnego, który zapewnia usługi personifikacji. |
| THREAD_QUERY_INFORMATION (0x0040) | Wymagane do odczytania pewnych informacji z obiektu wątku, takich jak kod zakończenia (zobacz GetExitCodeThread). |
| THREAD_QUERY_LIMITED_INFORMATION (0x0800) | Wymagane do odczytu niektórych informacji z obiektów wątku (zobacz GetProcessIdOfThread). Dojście z prawem dostępu THREAD_QUERY_INFORMATION jest automatycznie przyznawane THREAD_QUERY_LIMITED_INFORMATION.Windows Server 2003 i Windows XP: To prawo dostępu nie jest obsługiwane. |
| THREAD_SET_CONTEXT (0x0010) | Wymagane do zapisania kontekstu wątku przy użyciu SetThreadContext. |
| THREAD_SET_INFORMATION (0x0020) | Wymagane do ustawienia pewnych informacji w obiekcie wątku. |
| THREAD_SET_LIMITED_INFORMATION (0x0400) | Wymagane do ustawienia pewnych informacji w obiekcie wątku. Dojście z prawem dostępu do THREAD_SET_INFORMATION jest automatycznie przyznawane THREAD_SET_LIMITED_INFORMATION.Windows Server 2003 i Windows XP: To prawo dostępu nie jest obsługiwane. |
| THREAD_SET_THREAD_TOKEN (0x0080) | Wymagane do ustawienia tokenu personifikacji dla wątku przy użyciu SetThreadToken. |
| THREAD_SUSPEND_RESUME (0x0002) | Wymagane do wstrzymania lub wznowienia wątku (zobacz SuspendThread i ResumeThread). |
| THREAD_TERMINATE (0x0001) | Wymagane do zakończenia wątku przy użyciu TerminateThread. |
Możesz zażądać dostępu ACCESS_SYSTEM_SECURITY prawa do obiektu wątku, jeśli chcesz odczytać lub zapisać SACL obiektu. Aby uzyskać więcej informacji, zobacz listAccess-Control list (ACL) i SACL Access Right.
Chronione procesy
Chronione procesy zwiększyć obsługę usługi Digital Rights Management. System ogranicza dostęp do chronionych procesów i wątków chronionych procesów.
Windows Server 2003 i Windows XP: dodano procesy chronione począwszy od systemu Windows Vista.
Następujące określone prawa dostępu nie są dozwolone z procesu do wątków chronionego procesu:
THREAD_ALL_ACCESS
THREAD_DIRECT_IMPERSONATION
THREAD_GET_CONTEXT
THREAD_IMPERSONATE
THREAD_QUERY_INFORMATION
THREAD_SET_CONTEXT
THREAD_SET_INFORMATION
THREAD_SET_TOKEN
THREAD_TERMINATE
Prawo THREAD_QUERY_LIMITED_INFORMATION zostało wprowadzone w celu zapewnienia dostępu do podzestawu informacji dostępnych za pośrednictwem THREAD_QUERY_INFORMATION.