IOCTL_SERIAL_SET_WAIT_MASK IOCTL (ntddser.h)
IOCTL_SERIAL_SET_WAIT_MASK 要求は、指定された待機イベントのセットのいずれかが発生した後にクライアントに通知するようにシリアル コントローラー ドライバーを構成します。
クライアントは、SERIAL_EV_EVENT2を介して SERIAL_EV_RXCHAR フラグ ビットによって表される待機イベントを待機できます。 これらのイベント フラグの詳細については、「解説」セクションを参照してください。
クライアントは、入力イベント待機マスクを 1 つ以上のイベント フラグのビットごとの OR に設定することで、待機イベントを指定します。 クライアントは、入力イベント待機マスクを 0 に設定することで、すべての待機イベントをクリアできます。
クライアントは、待機イベントの発生を待機するために IOCTL_SERIAL_WAIT_ON_MASK 要求を使用します。 set-wait-mask 要求の処理時にマスク待機要求が既に保留状態の場合、保留中の待機オンイベント要求はSTATUS_SUCCESS状態で完了し、出力待機イベント マスクは 0 に設定されます。
メジャー コード
入力バッファー
AssociatedIrp.SystemBuffer メンバーは、クライアントが割り当て、イベント待機マスクに設定する ULONG バッファーを指します。 待機マスクは、0 または 1 つ以上の SERIAL_EV_XXX フラグ ビットのビットごとの OR に設定されます。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength メンバーは、ULONG のサイズ (バイト単位) に設定されます。
出力バッファー
何一つ。
出力バッファーの長さ
何一つ。
状態ブロック
Information メンバーは 0 に設定されます。
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_MASK および IOCTL_SERIAL_GET_WAIT_MASK 制御要求では、イベント待機マスクを使用して、クライアントが待機できる一連のイベントを指定します。 待機マスク値は、0 または 1 つ以上の xxx定数のビットごとの OR SERIAL_EV_。 待機マスク値が 0 の場合は、クライアントがイベントを待機しないことを示します。
クライアントは、現在設定されている待機マスク内のイベントを待機するために、IOCTL_SERIAL_WAIT_ON_MASK 制御要求を送信します。 シリアル コントローラー ドライバーは、待機マスク内のイベントが発生したときに、この要求を完了します。
次の表は、SerCx2、SerCx、および Serial.sysでサポートされている XXXフラグ ビット SERIAL_EV_ を示しています。 テーブルの Yes エントリは、シリアル フレームワーク拡張機能またはドライバーが対応するフラグ ビットをサポートしていることを示します。 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 を含む) |