[New - Windows NT]
CreateWaitableTimer函数创建一个“等待”定时器对象。
手柄CreateWaitableTimer(
LPSECURITY_ATTRIBUTES 【lpTimerAttributes】, | //指向安全属性的指针 |
BOOL 【bManualReset】, | //标志为手动复位状态 |
LPCTSTR 【lpTimerName】 | //指向计时器对象名称 |
); |
参数
【lpTimerAttributes】
指向SECURITY_ATTRIBUTES结构的指针,指定新定时器对象的安全描述符,并确定子进程是否可以继承返回的句柄。如果【lpTimerAttributes】为NULL,则定时器对象将获得默认安全描述符,并且该句柄不能被继承。
【bManualReset】
指定计时器类型。如果【bManualReset】为TRUE,则定时器是手动复位通知计时器。否则,定时器是同步定时器。
【lpTimerName】
指向一个以null结束的字符串,指定计时器对象的名称。该名称仅限于MAX_PATH个字符,并且可以包含除反斜杠路径分隔符(\\)之外的任何字符。名称比较区分大小写。
如果【lpTimerName】参数中指定的字符串与现有命名的定时器对象的名称相匹配,则调用成功返回,并返回ERROR_ALREADY_EXISTS。
如果【lpTimerName】为NULL,则创建定时器对象而不使用名称。
如果【lpTimerName】匹配现有事件,信号量,互斥体或文件映射对象的名称,则该函数将失败,GetLastError返回ERROR_INVALID_HANDLE。这是因为事件,信号量,互斥体,文件映射和等待时间对象共享相同的名称空间。
返回值
如果函数成功,则返回值是定时器对象的句柄。如果命名的timer对象存在于函数调用之前,GetLastError返回ERROR_ALREADY_EXISTS。否则,GetLastError返回零。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
由CreateWaitableTimer返回的句柄将使用TIMER_ALL_ACCESS访问权限创建。该句柄可用于需要定时器对象句柄的任何函数中。
调用进程的任何线程都可以在调用其中一个等待功能时指定计时器对象句柄。
多个进程可以具有相同计时器对象的句柄,从而使对象能够进行进程间同步。
*如果CreateWaitableTimer的CreateWaitableTimer参数启用继承,CreateProcess函数创建的进程可以继承定时器对象的句柄。
*进程可以在调用DuplicateHandle函数时指定计时器对象句柄。所得到的句柄可以被另一个进程使用。
*进程可以在调用OpenWaitableTimer或CreateWaitableTimer函数时指定计时器对象的名称。
使用CloseHandle功能关闭句柄。当过程终止时,系统自动关闭句柄。计时器对象在其最后一个句柄已关闭时被销毁。
也可以看看
CancelWaitableTimer,CloseHandle, CreateProcess, DuplicateHandle, FILETIME, OpenWaitableTimer,SECURITY_ATTRIBUTES, SetWaitableTimer