IOCTL_SERIAL_LSRMST_INSERT IOCTL (ntddser.h)

IOCTL_SERIAL_LSRMST_INSERT要求は、受信データ ストリームでの回線状態とモデムの状態に関する情報の挿入を有効または無効にします。 LSRMST 挿入が有効になっている場合、ドライバーはサポートされているイベントの種類のイベント情報を挿入します。 イベント情報には、 イベント ヘッダー の後にイベント固有のデータが含まれます。

イベント ヘッダーには、クライアント指定のエスケープ文字と、イベントの種類を示す SERIAL_LSRMST_XXX 定数が含まれています。 ドライバーは、次のイベントの種類をサポートしています。

SERIAL_LSRMST_LSR_DATA
行の状態に変更が発生しました。 シリアル コントローラー ドライバーは、イベント ヘッダーの後にイベント固有のデータを挿入します。これは、行ステータス レジスタの値と、行状態の変更が処理されたときに受信ハードウェアに存在する文字です。
SERIAL_LSRMST_LSR_NODATA
行の状態が変更されましたが、受信バッファーで使用できるデータがありませんでした。 シリアル コントローラー ドライバーは、イベント ヘッダーの後にイベント固有のデータを挿入します。これは、行の状態の変更が処理されたときの行状態レジスタの値です。
SERIAL_LSRMST_MST
モデムの状態に変更が発生しました。 シリアル コントローラー ドライバーは、イベント ヘッダーの後にイベント固有のデータを挿入します。これは、モデムの状態の変更が処理されたときのモデム状態レジスタの値です。
SERIAL_LSRMST_ESCAPE
デバイスから受信した受信データ ストリーム内の次の文字が、クライアント指定のエスケープ文字と同じであることを示します。 シリアル コントローラー ドライバーは、イベント ヘッダーを挿入します。 イベント固有のデータはありません。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

AssociatedIrp.SystemBuffer メンバーは、エスケープ文字として使用するクライアント割り当て UCHAR 入力値を指します。 エスケープ文字が 0 以外の場合、挿入が有効になり、シリアル ドライバーは指定されたエスケープ文字を使用します。 それ以外の場合、挿入は無効になります。

入力バッファーの長さ

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

出力バッファー

[なし] :

出力バッファーの長さ

[なし] :

ステータス ブロック

要求が成功した場合、 Information メンバーは UCHAR のサイズ (バイト単位) に設定されます。 それ以外の場合、 情報 は 0 に設定されます。

Status メンバーは、シリアル デバイス制御要求の汎用状態値のいずれかに設定されます。 STATUS_INVALID_PARAMETERの状態は、指定したエスケープ文字が XON (送信オン) 文字または XOFF (送信オフ) 文字と同じであるか、ハンドシェイク フロー制御でエラー置換が有効になっていることを示します。

要件

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