共用方式為


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 緩衝區。 等候遮罩設定為零,或設定為一個或多個 SERIAL_EV_XXX 旗標位的位OR。

輸入緩衝區長度

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

輸出緩衝區

無。

輸出緩衝區長度

無。

狀態區塊

Information 成員設定為零。

Status 成員會設定為序列設備控制要求的其中一個一般狀態值。 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控制要求會使用事件等候遮罩來指定用戶端可以等候的事件集。 等候掩碼值為零或一個或多個 SERIAL_EV_XXX 常數的位 OR。 等候遮罩值為零表示用戶端未等候任何事件。

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

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

旗標位 SerCx2 SerCx Serial.sys
SERIAL_EV_RXCHAR Yes Yes Yes
SERIAL_EV_RXFLAG 請參閱附註。 No Yes
SERIAL_EV_TXEMPTY Yes Yes Yes
SERIAL_EV_CTS Yes Yes Yes
SERIAL_EV_DSR Yes Yes Yes
SERIAL_EV_RLSD 請參閱附註。 Yes Yes
SERIAL_EV_BREAK Yes Yes Yes
SERIAL_EV_ERR Yes Yes Yes
SERIAL_EV_RING 請參閱附註。 Yes Yes
SERIAL_EV_PERR 請參閱附註。 No No
SERIAL_EV_RX80FULL 請參閱附註。 No Yes
SERIAL_EV_EVENT1 請參閱附註。 No No
SERIAL_EV_EVENT2 請參閱附註。 No No
 
注意 根據序列控制器驅動程式和序列控制器硬體的功能,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