記憶域クラス ドライバーの概要Introduction to Storage Class Drivers

ストレージクラスドライバー は、適切に確立された scsi クラス/ポートインターフェイスを使用して、システムが記憶ポートドライバー (現在は SCSI、IDE、USB、および IEEE 1394) を供給する任意のバス上のその種類の大容量記憶装置デバイスを制御します。A storage class driver uses the well-established SCSI class/port interface to control a mass storage device of its type on any bus for which the system supplies a storage port driver (currently SCSI, IDE, USB and IEEE 1394). ストレージデバイスが接続されている特定のバスは、ストレージクラスドライバーに対して透過的です。The particular bus to which a storage device is connected is transparent to the storage class driver.

任意のストレージクラスドライバーは、コマンド記述子ブロック(cdbs) を含む SCSI 要求ブロック(SRBs) を構築し、介在するフィルタードライバーを介して基になるストレージポートドライバーに送信することによって、ユーザーアプリケーションまたは上位レベルのドライバーからの i/o 要求を処理します。Any storage class driver handles I/O requests from user applications or higher-level drivers by building SCSI request blocks (SRBs) containing command descriptor blocks (CDBs) and sending them, through any intervening filter drivers, to the underlying storage port driver.

ストレージクラスドライバーは、SRB 内のアドレス指定情報を提供しません。A storage class driver does not provide addressing information in the SRB. 代わりに、ポートドライバー (またはそれよりも下位のドライバー) は、必要なアドレス指定を行います。Instead, the port driver (or a still-lower driver) is responsible for any addressing required. ストレージポートドライバーは、SRBs を、基になるホストバスアダプター (HBA) が必要とする形式に変換します。これは、SCSI または1394ホストバスアダプター、IDE コントローラー、その他のハードウェアである可能性があり、コマンドをデバイスに発行します。The storage port driver translates the SRBs into the format required by the underlying host bus adapter (HBA), which might be a SCSI or 1394 host bus adapter, IDE controller, or other such hardware, and issues commands to the device. Windows Driver Kit (WDK) では、"HBA" という用語は、そのような基になるアダプターまたはコントローラーを意味します。In the Windows Driver Kit (WDK), the term "HBA" stands for any such underlying adapter or controller.

I/o マネージャーと、ストレージクラスドライバーの上に階層化された上位レベルのドライバーには、ほとんどのストレージクラスドライバーは標準のカーネルモード中間ドライバーです。To the I/O manager and any higher-level drivers layered above a storage class driver, most storage class drivers are standard kernel-mode intermediate drivers. したがって、すべてのクラスドライバーには、 Driverentry ルーチン、 AddDevice ルーチン、 Unload ルーチン、1つ以上の iocompletion ルーチン、およびプラグアンドプレイと電源 Irp を処理するための DispatchPnPDispatchPower ルーチンが必要です。Thus every class driver must have a DriverEntry routine, an AddDevice routine, an Unload routine, one or more IoCompletion routines, plus DispatchPnP and DispatchPower routines to handle Plug and Play and power IRPs.

また、ストレージクラスドライバーは、システム制御の Irp を処理する DispatchSystemControl ルーチンも必要とします。また、ドライバーデザイナーによって決定された StartIo ルーチンなど、他の標準の上位レベルのドライバールーチンを持つことができます。A storage class driver must also have a DispatchSystemControl routine to handle system-control IRPs, and can have any other standard higher-level driver routine, such as a StartIo routine, as determined by the driver designer. システム制御と標準カーネルモードドライバールーチンの詳細については、「 標準ドライバールーチン」を参照してください。For more information about system-control and standard kernel-mode driver routines, see Standard Driver Routines.

PnP マネージャーには、ストレージクラスドライバーは、個々のデバイスを駆動する 関数ドライバーです。To the PnP manager, a storage class driver is a Function Drivers, that is, one that drives an individual device. ストレージクラスドライバーは、 バスドライバーとして機能し、デバイスの子デバイスを列挙することもできます。A storage class driver can also act as a Bus Drivers, enumerating child devices of its devices. たとえば、ディスクなどのパーティション分割されたメディアデバイスのクラスドライバーは、パーティションを表す PDOs の一覧を返します。For example, the class driver for a partitioned media device such as a disk returns a list of PDOs representing its partitions. このような PDO はそれぞれ、ターゲットデバイスとしてアドレス指定でき、独自のクラスドライバーによって処理されます。Each such PDO can be addressed as a target device and be serviced by its own class driver.

注意

このセクションで説明するように、プリンターやスキャナーなどの SCSI デバイス用のドライバーを実装する必要があります。A driver for a SCSI device such as a printer or a scanner should be implemented as described in this section. このような SCSI デバイスのドライバーは、同じ SCSI クラス/ポートインターフェイスを利用してデバイスを制御し、Irp の処理、SRBs の構築、および記憶装置のドライバーと同様に基になるポートドライバーへの送信を行います。A driver for such a SCSI device utilizes the same SCSI class/port interface to control its device and has the same responsibilities to handle IRPs, build SRBs, and send them to the underlying port driver as does a driver for a storage device.