EventWaitHandleAcl.Create Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou cria uma EventWaitHandle instância, permitindo que uma EventWaitHandleSecurity instância seja opcionalmente especificada para a definir durante a criação do evento.
public:
static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create(bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle
Parâmetros
- initialState
- Boolean
true definir o estado inicial para sinalizado se o evento nomeado for criado como resultado desta chamada; false para o definir como não sinalizado.
- mode
- EventResetMode
Um dos valores de enum que determina se o evento é reiniciado automaticamente ou manualmente.
- name
- String
O nome, se o objeto de sincronização for partilhado com outros processos; caso contrário, null ou uma cadeia vazia. O nome é sensível a maiúsculas e minúsculas. O carácter de barra inversa (\) é reservado e só pode ser usado para especificar um namespace. Para mais informações sobre namespaces, consulte a secção de observações. Podem existir restrições adicionais quanto ao nome, dependendo do sistema operativo. Por exemplo, em sistemas operativos baseados em Unix, o nome após excluir o espaço de nomes deve ser um nome de ficheiro válido.
- createdNew
- Boolean
Quando este método retorna, este argumento é sempre definido para true se for criado um evento local; isto é, quando name é null ou Empty. Se name tiver um valor válido, não vazio, este argumento é definido para true quando o evento do sistema é criado, ou para false se um evento existente do sistema for encontrado com esse nome.
- eventSecurity
- EventWaitHandleSecurity
A opção de controlo de acesso ao Windows deve aplicar.
Devoluções
Um objeto que representa um event wait handle conforme solicitado.
Exceções
O mode valor de enum estava fora do alcance legal.
-ou-
.NET Framework apenas: name é mais longo que MAX_PATH (260 caracteres).
O mode valor de enum estava fora do alcance legal. Em alguns casos ArgumentException , é lançado em vez disso.
name é inválido. Isto pode dever-se a várias razões, incluindo algumas restrições que podem ser impostas pelo sistema operativo, como um prefixo desconhecido ou caracteres inválidos. Note que o nome e os prefixos comuns "Global\" e "Local\" são sensíveis a maiúsculas minúsculas.
-ou-
Houve outro erro. A HResult propriedade pode fornecer mais informações.
Windows apenas: name especificava um namespace desconhecido. Consulte Nomes dos Objetos para mais informações.
O name é demasiado longo. As restrições de comprimento podem depender do sistema operativo ou da configuração.
Um objeto de sincronização com o fornecido name não pode ser criado. Um objeto de sincronização de outro tipo pode ter o mesmo nome.
O evento nomeado existe, mas o utilizador não tem o acesso de segurança desejado.
.NET Framework apenas: O comprimento name ultrapassa MAX_PATH (260 caracteres).
Observações
Podem name ser precedidos por Global\ ou Local\ para especificar um namespace. Quando o Global namespace é especificado, o objeto de sincronização pode ser partilhado com quaisquer processos no sistema. Quando o Local namespace é especificado, que é também o padrão quando não há namespace especificado, o objeto de sincronização pode ser partilhado com processos na mesma sessão. No Windows, uma sessão é uma sessão de login, e os serviços normalmente correm numa sessão diferente e não interativa. Em sistemas operativos do tipo Unix, cada shell tem a sua própria sessão. Os objetos de sincronização local da sessão podem ser apropriados para sincronizar entre processos com uma relação pai/filho, onde todos correm na mesma sessão. Para mais informações sobre nomes de objetos de sincronização no Windows, veja Object Names.
Se a name for fornecido e um objeto de sincronização do tipo solicitado já existir no namespace, o objeto de sincronização existente é aberto. Se já existir um objeto de sincronização de outro tipo no namespace, um WaitHandleCannotBeOpenedException lançamento é lançado. Caso contrário, é criado um novo objeto de sincronização.
Atenção
Por defeito, um evento nomeado não está restrito ao utilizador que o criou. Outros utilizadores podem conseguir abrir e usar o evento, incluindo interferir com o evento ao defini-lo ou reiniciá-lo de forma inadequada. Para restringir o acesso a utilizadores específicos, pode passar um EventWaitHandleSecurity num ao criar o evento nomeado. Evite usar eventos nomeados sem restrições de acesso em sistemas que possam ter utilizadores não confiáveis a executar código.