EventWaitHandleAcl.Create Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o crea una instancia de EventWaitHandle, lo que permite especificar opcionalmente una instancia de EventWaitHandleSecurity para establecerla durante la creación del 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
para establecer el estado inicial en señalado si el evento con nombre se crea como resultado de esta llamada; false
para establecerlo en no señalizado.
- mode
- EventResetMode
Uno de los valores de enumeración que determina si el evento se restablece automática o manualmente.
- name
- String
Nombre, si el objeto de sincronización se va a compartir con otros procesos; en caso contrario, null
o una cadena vacía. El nombre distingue entre mayúsculas y minúsculas. El carácter de barra diagonal inversa (\) está reservado y solo se puede usar para especificar un espacio de nombres. Para obtener más información sobre los espacios de nombres, consulte la sección comentarios. Puede haber más restricciones en el nombre en función del sistema operativo. Por ejemplo, en los sistemas operativos basados en Unix, el nombre después de excluir el espacio de nombres debe ser un nombre de archivo válido.
- createdNew
- Boolean
Cuando este método devuelve un valor, este argumento siempre se establece en true
si se crea un evento local, es decir, cuando name
es null
o Empty. Si name
tiene un valor no vacío válido, este argumento se establece en true
cuando se crea el evento del sistema, o bien se establece en false
si se encuentra un evento del sistema existente con ese nombre.
- eventSecurity
- EventWaitHandleSecurity
Seguridad del control de acceso de Windows opcional que se va a aplicar.
Devoluciones
Objeto que representa un controlador de espera de evento según se solicite.
Excepciones
El valor de enumeración mode
está fuera del intervalo válido.
O bien
Solo .NET Framework: name
es mayor que MAX_PATH (260 caracteres).
El valor de enumeración mode
está fuera del intervalo válido. En algunos casos, se produce ArgumentException en su lugar.
name
no es válido. Esto puede deberse a diversos motivos, incluidas algunas restricciones que puede imponer el sistema operativo, como un prefijo desconocido o caracteres no válidos. Tenga en cuenta que el nombre y los prefijos comunes "Global\" y "Local\" distinguen mayúsculas de minúsculas.
O bien
Hubo algún otro error. La propiedad HResult
puede proporcionar más información.
Solo Windows: name
especificó un espacio de nombres desconocido. Consulte Nombres de objetos para obtener más información.
name
es demasiado largo. Las restricciones de longitud pueden depender del sistema operativo o la configuración.
No se puede crear un objeto de sincronización con el valor name
proporcionado. Un objeto de sincronización de un tipo diferente podría tener el mismo nombre.
El evento con nombre existe, pero el usuario no tiene el acceso de seguridad deseado.
Solo .NET Framework: la longitud de name
es superior a MAX_PATH (260 caracteres).
Comentarios
name
puede tener como prefijo Global\
o Local\
especificar un espacio de nombres. Cuando se especifica el Global
espacio de nombres, el objeto de sincronización se puede compartir con cualquier proceso del sistema. Cuando se especifica el Local
espacio de nombres , que también es el valor predeterminado cuando no se especifica ningún espacio de nombres, el objeto de sincronización se puede compartir con procesos en la misma sesión. En Windows, una sesión es una sesión de inicio de sesión y los servicios normalmente se ejecutan en una sesión no interactiva diferente. En sistemas operativos similares a Unix, cada shell tiene su propia sesión. Los objetos de sincronización local de sesión pueden ser adecuados para sincronizar entre procesos con una relación primaria o secundaria en la que se ejecutan todas en la misma sesión. Para obtener más información sobre los nombres de objetos de sincronización en Windows, vea Nombres de objeto.
Si se proporciona y name
ya existe un objeto de sincronización del tipo solicitado en el espacio de nombres , se abre el objeto de sincronización existente. Si ya existe un objeto de sincronización de otro tipo en el espacio de nombres , se produce una WaitHandleCannotBeOpenedException
excepción . De lo contrario, se crea un nuevo objeto de sincronización.
Precaución
De forma predeterminada, un evento con nombre no está restringido al usuario que lo creó. Es posible que otros usuarios puedan abrir y usar el evento, incluida la interferencia con el evento estableciendo o restableciendolo de forma inapropiada. Para restringir el acceso a usuarios específicos, puede pasar un EventWaitHandleSecurity al crear el evento con nombre. Evite usar eventos con nombre sin restricciones de acceso en sistemas que puedan tener usuarios que no son de confianza que ejecuten código.