関数 0x64: インターフェイス レコードの読み取り

この関数は、ドライバーのインターフェイス レコードを読み取り、SNALink によって渡されたバッファーにコピーします。 この呼び出しを行う前に、バッファーを SNALink によって割り当てる必要があります。

パラメーター

IRP。System.Buffer
インターフェイス レコード アドレス (IN) - ドライバーのインターフェイス レコード領域への 32 ビット ポインター。

インターフェイス レコード形式は次のとおりです。

説明 Type
受信したフレーム int
送信バッファー領域 int
状態イベント int
入力 V.24 状態 UCHAR
出力 V.24 状態 UCHAR
統計カウンター int[11]
  • 受信フレームは、ドライバーの受信バッファーで現在キューに入れられているフレームの数です。

  • 送信バッファー領域は、SNALink にシグナルを送信するために使用されます。

    ドライバーに追加のフレームを提供できるかどうか。

    送信を待機しているフレームがまだドライバーに存在するかどうか。

    [送信バッファー領域] フィールドは、ドライバーが現在受け入れ可能な最大フレーム サイズを示します。 これは、送信フレーム IOCTL が成功した後に更新されます。さらにフレームをドライバーに送信する前に、SNALink で確認する必要があります。

  • 状態イベントは、統計カウンターに対して行われた増分の総数です。

  • 入力 V.24 Status は、入力インターフェイス行の現在の論理状態のビットマップであり、値 1 は ON を意味し、値 0 は OFF を意味します。 ピンは次のようにマップされます。

    ビット番号 V.24 回線名 回線番号 RS-232C ピン
    7 - 5 予約されています。 142 25
    4 テスト インジケータ 125 22
    3 呼び出しインジケーター 125 22
    2 RLSD (一般に DCD) 109 8
    1 Data Set Ready (DSR) 107 6
    0 Clear to send (CTS) 106 5
  • 出力 V.24 Status は、出力インターフェイス行の現在の論理状態のビットマップであり、値 1 は ON を意味し、値 0 は OFF を意味します。 ピンは次のようにマップされます。

    ビット番号 V.24 回線名 回線番号 RS-232C ピン
    7 - 5 予約されています。
    4 メンテナンス テスト 140 18
    3 [スタンバイ] を選択します 116 11
    2 データシグナル レート セレクター 111 23
    1 Data Terminal Ready (DTR) 108/2 22
    0 送信要求 (RTS) 105 4

    ドライバーは、送信中に必要に応じて RTS を上げ下げし、出力 V.24 状態フィールドの RTS の状態を反映します。 したがって、アプリケーションは RTS の操作を試みない必要があります。

  • 統計カウンターは、さまざまな種類のリンク状態情報の数を実行しています。関連するイベントは次のとおりです。

    カウンター番号 説明
    1 正しくない CRC で受信したフレーム。
    2 受信した最大サイズを超えるフレーム。
    3 受信した 32 ビット未満のフレーム。
    4 受信したフレームが 8 ビットの倍数ではない。
    5 中止されたフレームが受信されました。
    6 送信器のアンダーラン。
    7 受信者のオーバーラン。
    8 RLSD は受信中に低下します。
    9 CTS は転送中に低下します。
    10 DSR が削除されます。
    11 ハードウェア障害 (アダプターまたはモデム)。

解説

インターフェイス レコードには、フレームを送信できるかどうか、受信するフレームが 1 つあるかどうかを判断するために使用する高速なメカニズムが備わっています。 ドライバーは、この情報を保持します。 SNALink では、この情報が必要な場合は、読み取りインターフェイス レコードを呼び出して現在のインターフェイス レコードのコピーを取得します。 各呼び出しの後、ドライバーは独自のインターフェイス レコード内の統計カウンターをクリアします。 V.24 の状態と送受信データ情報は変更されません。