IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)
IOCTL_SERIAL_WAIT_ON_MASK 要求是用來等候使用 IOCTL_SERIAL_SET_WAIT_MASK 要求指定的任何等候事件。
發生下列其中一個事件之後,就會完成等候遮罩要求:
- 等候事件是由最新的 set-wait-mask 要求所指定。
- 當等候遮罩要求擱置時,會收到 IOCTL_SERIAL_SET_WAIT_MASK 要求。 驅動程式會完成擱置的等候遮罩要求,狀態為 STATUS_SUCCESS,而輸出等候遮罩會設定為零。
用戶端會傳送 IOCTL_SERIAL_WAIT_ON_MASK 要求,以等候最近 IOCTL_SERIAL_SET_WAIT_MASK 要求所提供等候遮罩中指定的事件。 如果在傳送 IOCTL_SERIAL_WAIT_ON_MASK 要求之前發生目前等候遮罩中的一或多個事件,則此要求會立即完成,且狀態為 STATUS_SUCCESS,以及識別事件的輸出遮罩值。 如果在傳送 IOCTL_SERIAL_WAIT_ON_MASK 要求之前未發生等候遮罩中的事件,此要求會標示為擱置中,而且它會在序列控制器佇列中等候目前等候遮罩中下一個事件。
在用戶端的 IOCTL_SERIAL_WAIT_ON_MASK 要求完成且狀態為STATUS_SUCCESS和非零輸出遮罩值之後,用戶端就可以傳送新的 IOCTL_SERIAL_WAIT_ON_MASK 要求,以等候目前等候掩碼中的另一個事件。 只有完成前一個 IOCTL_SERIAL_WAIT_ON_MASK 要求之後發生的新事件,才會使新的 IOCTL_SERIAL_WAIT_ON_MASK 要求完成,且狀態為STATUS_SUCCESS和非零輸出遮罩值。
主要程序代碼
輸入緩衝區
沒有。
輸入緩衝區長度
沒有。
輸出緩衝區
AssociatedIrp.System 緩衝區指向保存事件等候遮罩的 ULONG 緩衝區。 事件等候遮罩會指出發生的等候事件。 事件等候遮罩設定為零,或設定為一或多個 SERIAL_EV_XXX 旗標位的位 OR。
輸出緩衝區長度
Parameters.DeviceIoControl.OutputBufferLength 成員會設定為 ULONG 的大小,以位元組為單位。
狀態區塊
Information 成員會設定為 ULONG 的大小,以位元組為單位。
狀態 成員會設定為序列裝置控制要求 的其中一個一般狀態值。 STATUS_INVALID_PARAMETER狀態表示未設定等候事件,或等候遮罩要求已擱置中。
要求
要求 | 價值 |
---|---|
標頭 | ntddser.h (包括 Ntddser.h) |