共用方式為


IOCTL_SERIAL_SET_WAIT_MASK IOCTL (ntddser.h)

IOCTL_SERIAL_SET_WAIT_MASK 要求會設定序列控制器驅動程式,以在發生任何一組指定的等候事件之後通知用戶端。

用戶端可以等候旗標位所代表的等候事件,SERIAL_EV_RXCHAR 透過 SERIAL_EV_EVENT2。 如需這些事件旗標的詳細資訊,請參閱一節。

用戶端會將輸入事件等候遮罩設定為一或多個事件旗標的位 OR,以指定等候事件。 用戶端可以將輸入事件等候遮罩設定為零,以清除所有等候事件。

用戶端會使用 IOCTL_SERIAL_WAIT_ON_MASK 要求來等候發生等候事件。 處理 set-wait-mask 要求時,如果等候遮罩要求已經擱置中,則擱置的等候事件要求會以STATUS_SUCCESS狀態完成,而輸出等候事件遮罩會設定為零。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

AssociatedIrp.SystemBuffer 成員指向用戶端配置並設定為事件等候遮罩的 ULONG 緩衝區。 等候遮罩設定為零或位 OR 為一或多個 SERIAL_EV_XXX 旗標位。

輸入緩衝區長度

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

輸出緩衝區

沒有。

輸出緩衝區長度

沒有。

狀態區塊

資訊 成員設定為零。

狀態 成員會設定為序列裝置控制要求 的其中一個一般狀態值。 STATUS_INVALID_PARAMETER的狀態表示輸入等候遮罩無效。

言論

SERIAL_EV_XXX 常數會定義序列埠等候掩碼中的旗標位。

#define SERIAL_EV_RXCHAR     0x0001
#define SERIAL_EV_RXFLAG     0x0002
#define SERIAL_EV_TXEMPTY    0x0004
#define SERIAL_EV_CTS        0x0008
#define SERIAL_EV_DSR        0x0010
#define SERIAL_EV_RLSD       0x0020
#define SERIAL_EV_BREAK      0x0040
#define SERIAL_EV_ERR        0x0080
#define SERIAL_EV_RING       0x0100
#define SERIAL_EV_PERR       0x0200
#define SERIAL_EV_RX80FULL   0x0400
#define SERIAL_EV_EVENT1     0x0800
#define SERIAL_EV_EVENT2     0x1000

SERIAL_EV_XXX 常數會定義可在等候掩碼中指定的事件類型。 在用戶端 (應用程式或周邊驅動程式) 開啟與序列埠的連線之後,用戶端可以指定等候遮罩,指出用戶端需要監視的事件類型。 這些事件是串行埠硬體狀態的變更。 當等候遮罩中的事件發生時,就會通知用戶端。

IOCTL_SERIAL_SET_WAIT_MASKIOCTL_SERIAL_GET_WAIT_MASK 控件要求會使用事件等候遮罩來指定用戶端可以等候的事件集。 等候遮罩值為零或位 OR,或一或多個 SERIAL_EV_XXX 常數。 等候遮罩值為零表示用戶端未等候任何事件。

用戶端會傳送 IOCTL_SERIAL_WAIT_ON_MASK 控件要求,以等候目前設定的等候遮罩中的事件。 當等候遮罩中的事件發生時,序列控制器驅動程式會完成此要求。

下表顯示 SerCx2、SerCx 和 Serial.sys支援哪些 SERIAL_EV_XXX 旗標位。 數據表中的 [是] 專案表示序列架構延伸模組或驅動程式支援對應的旗標位。 No 專案表示不支援旗標位

旗標位 SerCx2 SerCx Serial.sys
SERIAL_EV_RXCHAR 是的 是的 是的
SERIAL_EV_RXFLAG 請參閱附注。 是的
SERIAL_EV_TXEMPTY 是的 是的 是的
SERIAL_EV_CTS 是的 是的 是的
SERIAL_EV_DSR 是的 是的 是的
SERIAL_EV_RLSD 請參閱附注。 是的 是的
SERIAL_EV_BREAK 是的 是的 是的
SERIAL_EV_ERR 是的 是的 是的
SERIAL_EV_RING 請參閱附注。 是的 是的
SERIAL_EV_PERR 請參閱附注。
SERIAL_EV_RX80FULL 請參閱附注。 是的
SERIAL_EV_EVENT1 請參閱附注。
SERIAL_EV_EVENT2 請參閱附注。
 
注意 SerCx2 可能或可能不支援指定資料表專案中的旗標位,視序列控制器驅動程式和序列控制器硬體的功能而定。
 
如需 SerCx2、SerCx 和 Serial.sys的詳細資訊,請參閱 序列控制器驅動程式概觀

要求

要求 價值
標頭 ntddser.h (包括 Ntddser.h)

另請參閱

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_CHARS

SERIAL_STATUS