共用方式為


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,而輸出等候遮罩會設定為零。
用戶端可以等候旗標位所代表的等候事件 ,SERIAL_EV_RXCHAR 透過 SERIAL_EV_EVENT2。 如需這些事件旗標的詳細資訊,請參閱 SERIAL_EV_XXX

用戶端會傳送 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 和非零輸出遮罩值。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

無。

輸入緩衝區長度

無。

輸出緩衝區

AssociatedIrp.System 緩衝區指向保存事件等候遮罩的 ULONG 緩衝區。 事件等候遮罩會指出發生哪些等候事件。 事件等候遮罩會設定為零,或設定為一或多個 SERIAL_EV_XXX 旗標位的位 OR。

輸出緩衝區長度

Parameters.DeviceIoControl.OutputBufferLength 成員會設定為 ULONG 的大小,以位元組為單位。

狀態區塊

Information 成員會設定為 ULONG 的大小,以位元組為單位。

Status 成員會設定為序列設備控制要求的其中一個一般狀態值。 STATUS_INVALID_PARAMETER的狀態表示未設定等候事件,或已擱置等候遮罩要求。

規格需求

需求
標頭 ntddser.h (包含 Ntddser.h)

另請參閱

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX