windows核心编程之内核对象同步(3)

常规的等待内核对象的函数已经不用我说明了
我们来将内核对象做个纵向对比
windows核心编程之内核对象同步(3)
windows核心编程之内核对象同步(3)
现在我们要介绍一个用于等待子进程初始化的函数
DWORD WaitForInputIdle(
HANDLE hProcess, //子进程句柄
DWORD dwMilliseconds // 超时时间
);
该函数一直处于等待状态,直到子进程不再处理任何输入为止

MsgWaitForMultipleObjects
DWORD nCount, // number of handles in array
CONST HANDLE pHandles, // object-handle array
DWORD dwMilliseconds, // time-out interval
DWORD dwWakeMask, // input-event type

多于的我就不说了,这个函数和不带Msg的主要差别是,这个函数可以等待窗口消息(所以主要用在带界面的程序里)
我们主要讲下dwWakeMask
windows核心编程之内核对象同步(3)
带ex的版本
dwFlags
windows核心编程之内核对象同步(3)

返回值的说明以后补上

DWORD SignalObjectAndWait(
HANDLE hObjectToSignal, // handle to object to signal
HANDLE hObjectToWaitOn, // handle to object to watch
DWORD dwMilliseconds, // time-out interval
BOOL bAlertable // alertable option
);

将第一个内核对象变为有信号状态,等待第二个内核对象

第四个参数参考ReadFileEx,我有做过说明