Idioma

ProcessStartInfo.InheritedHandles Propriedade

Definição

Obtém ou define uma lista de handles a serem herdados pelo processo filho.

public:
 property System::Collections::Generic::IList<System::Runtime::InteropServices::SafeHandle ^> ^ InheritedHandles { System::Collections::Generic::IList<System::Runtime::InteropServices::SafeHandle ^> ^ get(); void set(System::Collections::Generic::IList<System::Runtime::InteropServices::SafeHandle ^> ^ value); };
public System.Collections.Generic.IList<System.Runtime.InteropServices.SafeHandle>? InheritedHandles { get; set; }
member this.InheritedHandles : System.Collections.Generic.IList<System.Runtime.InteropServices.SafeHandle> with get, set
Public Property InheritedHandles As IList(Of SafeHandle)

Valor de Propriedade

Uma lista de SafeHandle objetos a serem explicitamente herdados pelo processo filho, ou null para usar o comportamento padrão de herança do handle handle.

Observações

Quando esta propriedade não nullé , a herança dos handles é restrita aos handles padrão e aos handles desta lista. Se a lista estiver vazia, apenas os handles padrão são herdados.

Apenas SafeFileHandle e SafePipeHandle são suportados nesta lista.

Definir esta propriedade em sistemas Unix que não têm suporte nativo para controlar a herança de handle pode degradar severamente o desempenho do início do processo.

Os handles desta lista não devem ter a herança ativada antecipadamente. Se o fizerem, podem ser herdados involuntariamente por outros processos iniciados em simultâneo com APIs diferentes, o que pode levar a problemas de segurança ou gestão de recursos.

Dois inicios de processos concorrentes que passam o mesmo handle in InheritedHandles não são suportados. No Windows, a implementação modifica temporariamente as flags de herança de cada handle. Essas modificações não são thread-safe entre partidas simultâneas que partilham o mesmo handle.

Esta API não pode ser usada em conjunto com UseShellExecute definida para true ou ao especificar um nome de utilizador através da UserName propriedade.

No Windows, a implementação permite temporariamente a herança em cada handle desta lista, modificando as flags do handle usando SetHandleInformation. Depois de criado o processo filho, a herança é incondicionalmente desativada nestes handles para evitar que sejam herdados por outros processos iniciados com APIs diferentes. As próprias alças não são duplicadas; tornam-se hereditárias e passam para o processo da criança.

No Unix, a implementação modifica cada descritor de ficheiro no processo filho removendo a flag FD_CLOEXEC. A modificação ocorre depois do fork e antes do executivo, por isso não afeta o processo principal.

Aplica-se a