PSCSIWMI_SET_DATABLOCK コールバック関数 (scsiwmi.h)

ミニポート ドライバーの HwScsiWmiSetDataBlock ルーチンは、データ ブロックの 1 つのインスタンス内のすべてのデータ項目を変更するために呼び出されます。 このルーチンは省略可能です。

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

構文

PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;

BOOLEAN PscsiwmiSetDatablock(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG BufferSize,
  [in] PUCHAR Buffer
)
{...}

パラメーター

[in] DeviceContext

ScsiPortWmiDispatchFunction に渡されるミニポート ドライバーで定義されたコンテキスト値を指します。

[in] RequestContext

ミニポート ドライバーが ScsiPortWmiDispatchFunction に渡したSCSIWMI_REQUEST_CONTEXT構造体を指します。

[in] GuidIndex

ミニポート ドライバーが ScsiPortWmiDispatchFunction に渡したSCSI_WMILIB_CONTEXT構造内の GUID の一覧へのインデックスによってデータ ブロックを指定します。

[in] InstanceIndex

GuidIndex で指定されたブロックに複数のインスタンスがある場合、InstanceIndex は インスタンスを指定します。

[in] BufferSize

Buffer のバッファーのサイズをバイト単位で指定 します

[in] Buffer

インスタンスの新しい値を含むバッファーを指します。

戻り値

HwScsiWmiSetDataBlock は、要求が保留中の場合はSRB_STATUS_PENDINGを返し、要求が完了した場合は 0 以外の SRB 状態値を返します。 このルーチンによって返される SRB 状態値は、 ScsiPortWmiPostProcess に渡されたものと同じです。

注釈

ミニポート ドライバーは、Function メンバーがSRB_FUNCTION_WMIに設定されている SRB を受信すると、初期化されたSCSI_WMILIB_CONTEXT構造体へのポインターを使用して ScsiPortWmiDispatchFunction を呼び出し、MinorFunctionSrb-WmiSubFunction> に設定します。 MinorFunction がデータ ブロックのインスタンスを変更する要求を示している場合、SCSI ポート ドライバーはミニポート ドライバーの HwScsiWmiSetDataBlock ルーチンを呼び出します。

ミニポート ドライバーが HwScsiWmiSetDataBlock ルーチンを実装していない場合は、ミニポート ドライバーが ScsiPortWmiDispatchFunction に渡すSCSI_WMILIB_CONTEXTで SetWmiDataBlockNULL に設定する必要があります。 この場合、ポート ドライバーは呼び出し元にSRB_STATUS_ERRORを返します。

ミニポート ドライバーが HwScsiWmiSetDataBlock を実装する場合は、データ ブロックのインスタンスをバッファーから新しい値に変更する必要があります。

データ ブロック内のすべての項目が読み取り専用の場合、ミニポート ドライバーはSRB_STATUS_ERRORを返す必要があります。 それ以外の場合、ミニポート ドライバーは、可能な項目を変更し、SRB_STATUS_SUCCESSを返します。

ミニポート ドライバーは、要求が完了したときに、適切な SrbStatus 値を使用して ScsiPortWmiPostProcess を呼び出す必要があります。 要求が処理されない場合は、HwScsiWmiSetDataBlock コールバックで ScsiPortWmiPostProcess を呼び出す必要があります。 それ以外の場合は、要求が実際に完了したときに ScsiPortWmiPostProcess を呼び出す必要があります。

要件

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

こちらもご覧ください

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess