次の方法で共有


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

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

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

構文

PSCSIWMI_SET_DATAITEM PscsiwmiSetDataitem;

BOOLEAN PscsiwmiSetDataitem(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG DataItemId,
  [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] DataItemId

設定するデータ項目の ID を指定します。

[in] BufferSize

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

[in] Buffer

データ項目の新しい値を含むバッファーを指します。

戻り値

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

注釈

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

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

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

アイテムが読み取り専用の場合、ミニポート ドライバーは、SRB_STATUS_ERRORを使用して ScsiPortWmiPostProcess を 呼び出します。 それ以外の場合、ミニポート ドライバーはアイテムを変更し、SRB_STATUS_SUCCESSを使用して ScsiPortWmiPostProcess を 呼び出します。

要件

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

こちらもご覧ください

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess