次の方法で共有


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状態で完了し、出力待機マスクが 0 に設定されます。
クライアントは、SERIAL_EV_EVENT2を介してSERIAL_EV_RXCHARフラグ ビットによって表される待機イベントを待機できます。 これらのイベント フラグの詳細については、「 SERIAL_EV_XXX」を参照してください。

クライアントは 、最新のIOCTL_SERIAL_SET_WAIT_MASK 要求によって提供された待機マスクで指定されたイベントの発生を待機する IOCTL_SERIAL_WAIT_ON_MASK要求を 送信します。 IOCTL_SERIAL_WAIT_ON_MASK要求が送信される前に、現在の待機マスク内の 1 つ以上のイベントが発生した場合、この要求は、STATUS_SUCCESSの状態とイベントを識別する出力マスク値を使用して直ちに完了します。 IOCTL_SERIAL_WAIT_ON_MASK要求が送信される前に待機マスク内のイベントが発生しない場合、この要求は保留中としてマークされ、シリアル コントローラー キューで現在の待機マスク内のイベントが次に発生するまで待機します。

クライアントの IOCTL_SERIAL_WAIT_ON_MASK 要求がSTATUS_SUCCESSの状態と 0 以外の出力マスク値で完了した後、クライアントは新しい IOCTL_SERIAL_WAIT_ON_MASK 要求を送信して、現在の待機マスク内の別のイベントを待機できます。 前の IOCTL_SERIAL_WAIT_ON_MASK 要求が完了した後に発生 した新しい イベントのみが、STATUS_SUCCESSの状態と 0 以外の出力マスク値で新しいIOCTL_SERIAL_WAIT_ON_MASK要求が完了します。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

AssociatedIrp.System バッファーは、イベント待機マスクを保持する ULONG バッファーを指します。 イベント待機マスクは、発生した待機イベントを示します。 イベント待機マスクは、0 または 1 つ以上の SERIAL_EV_XXX フラグ ビットのビットごとの OR に設定されます。

出力バッファーの長さ

Parameters.DeviceIoControl.OutputBufferLength メンバーは、ULONG のサイズ (バイト単位) に設定されます。

ステータス ブロック

Information メンバーは、ULONG のサイズ (バイト単位) に設定されます。

Status メンバーは、シリアル デバイス制御要求の汎用状態値のいずれかに設定されます。 状態STATUS_INVALID_PARAMETERは、待機イベントが設定されていないこと、または待機オンマスク要求が既に保留中であることを示します。

要件

要件
Header ntddser.h (Ntddser.h を含む)

こちらもご覧ください

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX