次の方法で共有


シリアル接続される周辺デバイスの接続 ID

SerCx2 は、周辺機器が常時接続されているシリアルポートを管理します。 これらの物理接続は固定されているため、ハードウェア プラットフォームの ACPI ファームウェアで記述することができます。 SerCx2 によって管理されるシリアル ポートに接続されている周辺デバイス用のドライバーを作成する場合、ドライバーが受け取るハードウェア リソースのリストには、プラットフォーム ファームウェアからのデバイス接続情報をカプセル化する接続 ID が含まれます。

システムの起動時に、プラグ アンド プレイ (PnP) マネージャーは PnP デバイスと非 PnP デバイスの両方を列挙します。 シリアル ポートに固定接続されている非 PnP 周辺デバイスの場合、PnP マネージャーはハードウェア プラットフォームの ACPI ファームウェアをクエリして、デバイスへのアクセス方法を記述する接続パラメーターのセットを取得します。 これらの接続パラメータは、デバイスが接続されているポートのシリアル コントローラを識別し、シリアル コントローラがデバイスと通信するために必要なボー レートやフロー制御設定などのその他の情報を含みます。

PnP マネージャーは、この周辺機器の接続パラメーターを表す接続 ID を割り当てます。 PnP マネージャーは、この ID と接続パラメーターを一緒にリソース ハブと呼ばれるシステム データストアに保存します。 (リソース ハブは、PnP マネージャーがシリアル接続された周辺機器に関する構成情報を保存する内部データストアです。) 接続 ID はこれらのパラメーターをカプセル化するため、周辺機器ドライバーはそれらを不透明なものとして扱うことができます。

周辺機器ドライバーは、ドライバーに割り当てられたハードウェア リソースの一部として、シリアル接続された周辺機器の接続 ID を受け取ります。 周辺機器ドライバーがシステム関数を呼び出して周辺デバイスへの接続を開くとき、ドライバーは接続 ID を提供します。システム関数はその接続 ID を使用して、リソース ハブからデバイスの接続パラメーターを取得します。

接続 ID を使用してシリアル接続された周辺デバイスへの論理接続を開く UMDF ドライバーと KMDF ドライバーのコード例については、次のトピックをご覧ください。

UMDF 周辺機器ドライバーをシリアル ポートに接続する

KMDF 周辺機器ドライバーをシリアル ポートに接続する

シリアル ポート上で周辺機器への接続を開いたクライアントは、接続が閉じられるまでそのポートに排他的にアクセスできます。 他のクライアントが同じポートに 2 つ目の接続を開こうとすると、失敗します。

シリアル ポートを開いた直後、クライアントはポートが不明または未定義の状態にあると想定する必要があります。 クライアントは、ポートを使用できるように構成する必要があります。

シリアル ポートを動作できるように構成するには、クライアントは I/O 制御 (IOCTL) 要求をシリアル コントローラーに送信します。 通常、クライアントは IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION リクエストをコントローラに送信して、ポートをデフォルト構成に設定します。 必要に応じて、クライアントは追加のシリアル IOCTL を送信して、1 つ以上のデフォルト構成設定をオーバーライドできます。 たとえば、Windows はシリアル IOCTL を定義して、ボー レート、フロー制御パラメータ、回線制御設定、読み取りおよび書き込み要求のタイムアウト値を変更します。 SerCx2 によってサポートされるシリアル IOCTL のリストについては、シリアル I/O リクエスト インターフェイスをご覧ください。