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
- デバイスから受信した受信データ ストリーム内の次の文字が、クライアント指定のエスケープ文字と同じであることを示します。 シリアル コントローラー ドライバーは、イベント ヘッダーを挿入します。 イベント固有のデータはありません。
メジャー コード
入力バッファー
AssociatedIrp.SystemBuffer メンバーは、エスケープ文字として使用するクライアント割り当て UCHAR 入力値を指します。 エスケープ文字が 0 以外の場合、挿入が有効になり、シリアル ドライバーは指定されたエスケープ文字を使用します。 それ以外の場合、挿入は無効になります。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength メンバーは、UCHAR のサイズ (バイト単位) に設定されます。
出力バッファー
何一つ。
出力バッファーの長さ
何一つ。
状態ブロック
要求が成功した場合、Information メンバーは UCHAR のサイズ (バイト単位) に設定されます。 それ以外の場合、情報 は 0 に設定されます。
Status メンバーは、シリアル デバイス制御要求 の汎用ステータス値のいずれかに設定されます。 STATUS_INVALID_PARAMETERの状態は、指定されたエスケープ文字が XON (送信オン) 文字または XOFF (送信オフ) 文字と同じであるか、またはハンドシェイク フロー制御でエラー置換が有効になっていることを示します。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddser.h (Ntddser.h を含む) |