Udostępnij za pośrednictwem


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.

  1. Utwórz uchwyt za pomocą elementu bInheritHandle elementu członkowskiego struktury SECURITY_ATTRIBUTES ustawionej na true.
  2. 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.