创建事件CreateEventW

函数原型:

CreateEventW(
    _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
    _In_ BOOL bManualReset,
    _In_ BOOL bInitialState,
    _In_opt_ LPCWSTR lpName
    );

参数1:安全描述符

参数2:手动复位
TRUE为手动,FALSE为自动。影响等待线程释放后,线程是手动还是自动的回到复位状态(即无信号状态)。

参数3:初始状态
TRUE为置位(有信号),FALSE为复位(无信号)。

参数4:事件对象名称
可设置一个最长为MAX_PATH的时间对象名称。
可以选择本地或全局(Local或Global),
如:CreateEvent( NULL, FALSE, FALSE, “Global\\CSAPP” );
利用全局内核对象命名空间可以做到进程间的同步。
也可以活用此功能避免运行重复的进程。

返回值:
如果函数成功,则返回值是事件对象的句柄。如果命名事件对象在函数调用之前存在,则该函数返回现有对象的句柄,而 GetLastError返回 ERROR_ALREADY_EXISTS。
如果函数失败,则返回值为NULL。要获取扩展的错误信息,请调用 GetLastError。