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狀態完成,而輸出等候事件遮罩會設定為零。
主要程序代碼
輸入緩衝區
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_MASK 和 IOCTL_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 | 請參閱附注。 | 不 | 不 |
要求
要求 | 價值 |
---|---|
標頭 | ntddser.h (包括 Ntddser.h) |