Obsługa dziedziczenia
Proces podrzędny może dziedziczyć uchwyty po procesie nadrzędnym. Dziedziczony uchwyt jest prawidłowy tylko w kontekście procesu podrzędnego. Aby umożliwić procesowi podrzędnym dziedziczenie otwartych dojść z procesu nadrzędnego, wykonaj następujące kroki.
- Utwórz uchwyt za pomocą elementu bInheritHandle elementu członkowskiego struktury SECURITY_ATTRIBUTES ustawionej na true.
- Utwórz proces podrzędny przy użyciu funkcji CreateProcess z parametrem bInheritHandles ustawionym na TRUE.
Funkcja DuplicateHandle duplikuje uchwyt do użycia w bieżącym procesie lub w innym procesie. Jeśli aplikacja duplikuje jeden z jego dojść do innego procesu, zduplikowany uchwyt jest prawidłowy tylko w kontekście innego procesu.
Zduplikowany lub dziedziczony uchwyt jest unikatową wartością, ale odnosi się do tego samego obiektu co oryginalny uchwyt. Procesy mogą dziedziczyć lub duplikować dojścia do następujących typów obiektów:
- Token dostępu
- Urządzenie komunikacyjne
- Dane wejściowe konsoli
- Bufor ekranu konsoli
- Pulpit
- Katalog
- Zdarzenie
- Plik
- Mapowanie plików
- Zadanie
- Mailslot
- Mutex
- Fajka
- Proces
- Klucz rejestru
- Semafor
- Gniazdo
- Nitka
- Minutnik
- Stacja okienna
Wszystkie inne obiekty są prywatne do procesu, który je utworzył; ich uchwyty obiektów nie mogą być zduplikowane ani dziedziczone.
Aby uzyskać więcej informacji, zobacz Dziedziczenie.