ScsiPortWmiFireLogicalUnitEvent 関数 (scsiwmi.h)

ScsiPortWmiFireLogicalUnitEvent ルーチンは、イベントの通知を要求した WMI データ コンシューマーに配信するために、論理ユニットに関連付けられているイベントをポート ドライバーに送信します。

メモ SCSI ポート ドライバーと SCSI ミニポート ドライバー モデルは、今後変更または使用できない可能性があります。 代わりに、 Storport ドライバーStorport ミニポート ドライバー モデルを使用することをお勧めします。
 

構文

void ScsiPortWmiFireLogicalUnitEvent(
  [in] PVOID  HwDeviceExtension,
  [in] UCHAR  PathId,
  [in] UCHAR  TargetId,
  [in] UCHAR  Lun,
  [in] LPGUID Guid,
  [in] ULONG  InstanceIndex,
  [in] ULONG  EventDataSize,
  [in] PVOID  EventData
);

パラメーター

[in] HwDeviceExtension

ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーが割り当て、ミニポート ドライバーの代わりに初期化する HBA ごとの記憶域です。 ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが ScsiPortInitialize を呼び出した直後に、HBA のデバイス オブジェクトの DeviceExtension-HwDeviceExtension> メンバーのミニポート ドライバーで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。

[in] PathId

SCSI バスを識別します。SP_UNTAGGEDは、HBA によって制御されるすべてのバスを示します。

[in] TargetId

指定されたバス上のターゲット コントローラーまたはデバイスを識別します。SP_UNTAGGEDは、バス上のすべてのターゲットを示します。

[in] Lun

指定されたターゲット コントローラーまたはデバイスの論理ユニットを識別します。SP_UNTAGGEDは、指定されたバス上の特定のターゲット コントローラーのすべての論理ユニットを示します。

[in] Guid

イベント ブロックを表す GUID へのポインター。

[in] InstanceIndex

イベント ブロックに複数のインスタンスがある場合は、インスタンスのインデックスを指定します。

[in] EventDataSize

EventData のデータのバイト数を指定します。イベント データ バッファーの先頭のパッド バイトは含まれません。 イベントのデータが生成されない場合は、 EventDataSize を 0 に設定する必要があります。

[in] EventData

イベントのミニポート ドライバーによって生成されたデータを含むミニポート ドライバーによって割り当てられたバッファーへのポインター。 バッファーは、少なくともイベント データのサイズに加えて、バッファーの先頭0x40パッド バイトである必要があります。

戻り値

なし

解説

ミニポート ドライバーは ScsiPortWmiFireLogicalUnitEvent を呼び出して、アダプターまたは論理ユニットに関連付けられたイベントを、イベントの通知を要求したすべてのデータ コンシューマーに送信します。

ミニポート ドライバーは、ミニポート ドライバーの HwScsiWmiFunctionControl ルーチンによって以前に有効になっている場合にのみ、イベントを送信します。

ドライバーは、オフセット 0x40で EventData が指すバッファーにイベント データを書き込む必要があります。 最初の0x40バイトは SCSI WMI によって使用されます。 イベントでデータが返されない場合は、 EventData の長さが0x40バイトである必要があります。

要件

要件
対象プラットフォーム デスクトップ
Header scsiwmi.h (Miniport.h、Scsi.h を含む)

こちらもご覧ください

HwScsiWmiFunctionControl