次の方法で共有


必須およびオプションの SCSI ミニポート ドライバー ルーチン

ミニポート ドライバーの HwScsiXxx ルーチンには、ドライバー ライターが選択した任意の名前を付けることができます。 DriverEntry は必須の名前です。

すべての SCSI ミニポート ドライバーには、少なくとも次のシステム定義ルーチンが必要です。

必須ルーチン 説明
DriverEntry ミニポート ドライバーの初期化
HwScsiFindAdapter ドライバーでサポートされるホスト バス アダプター (HBA) をコンピューターで構成する方法 (または、ドライバーでサポートされるかどうか) の決定
HwScsiInitialize サポートされている HBA の初期化
HwScsiStartIo 受信要求のためのミニポートの HBA に対する操作の開始
HwScsiResetBus バス リセット要求の処理

各 HBA とドライバー設計者によって異なりますが、SCSI ミニポート ドライバーにはまた、次のシステム定義ルーチンの一部またはすべても備わっています。

ルーチンによって返される値 説明
HwScsiInterrupt HBA が生成した割り込みを処理します。HBA が割り込みを生成しない場合にのみ省略可能となり、ミニポート ドライバーはポーリングによって HBA のすべての I/O 操作を管理します。 ただし、ポーリングのみを使用すると、ミニポート ドライバーのパフォーマンスとその HBA の I/O スループットに悪影響があります。 このようなミニポート ドライバーには、HwScsiTimer ルーチンも必要です。
HwScsiDisableInterruptsCallbackHwScsiEnableInterruptsCallback 割り込み駆動型 I/O 操作に時間がかかる場合は、遅延 I/O 処理を行います。
HwScsiTimer HBA で長い遅延を必要とする時間操作、またはドライバー設計者が決定したその他の目的のための時間操作。 ミニポート ドライバーに HwScsiInterrupt ルーチンがない場合は、HwScsiTimer ルーチンが必要です。HwScsiTimer ルーチンは、HBA の効率的なポーリングのために使用できます。
HwScsiDmaStarted HBA がシステム DMA コントローラーを使用する場合、システム DMA コントローラーがポート ドライバーによってプログラムされた後に HBA 転送を設定するために必要です。
HwScsiAdapterState HBA に BIOS または x86 リアルモード ドライバーがない場合、または x86 専用の Microsoft Windows システムで実行されない場合にのみ、省略可能です。
HwScsiAdapterControl ミニポート ドライバーがプラグ アンド プレイをサポートしている場合に必要です。
HwScsiWmiExecuteMethod データ ブロックに関連付けられているメソッドを実行します。 このルーチンは省略可能です。
HwScsiWmiFunctionControl イベントの通知を有効または無効にし、ミニポート ドライバーが収集コストが高いと指定したデータ ブロックのデータ収集を有効または無効にします。 省略可能。
HwScsiWmiQueryDataBlock データ ブロックの単一インスタンスまたはすべてのインスタンスを取得します。 必須。
HwScsiWmiQueryReginfo ミニポート ドライバーの代わりに SCSI ポート ドライバーが登録するデータとイベント ブロックに関する情報を取得します。 必須。
HwScsiWmiSetDataBlock データ ブロックの単一インスタンス内のすべてのデータ項目を変更します。 省略可能。
HwScsiWmiSetDataItem データ ブロックのインスタンス内の 1 つのデータ項目を変更します。 省略可能。

上記のミニポート ドライバー ルーチンのそれぞれ (DriverEntry を除く) には、その機能を説明するために選択された名前があります。 すべてのミニポート ドライバーの初期エントリ ポイントに必要な名前である DriverEntry を除き、ミニポート ドライバー ルーチンの名前は、ドライバー ライターが選択する任意の名前にすることができます。

SCSI ミニポート ドライバーでのエラー処理」は、SCSI ミニポート ドライバー のエラー処理要件について説明しています。