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 成員會設定為序列設備控制要求的其中一個一般狀態值。 STATUS_INVALID_PARAMETER的狀態表示未設定等候事件,或已擱置等候遮罩要求。
規格需求
需求 | 值 |
---|---|
標頭 | ntddser.h (包含 Ntddser.h) |