PSCSIWMI_SET_DATAITEM Rückruffunktion (scsiwmi.h)

Die HwScsiWmiSetDataItem-Routine eines Miniporttreibers wird aufgerufen, um ein einzelnes Datenelement in einer instance eines Datenblocks zu ändern. Diese Routine ist optional.

Hinweis Der SCSI-Porttreiber und die SCSI-Miniporttreibermodelle sind möglicherweise geändert oder in Zukunft nicht mehr verfügbar. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

Syntax

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
)
{...}

Parameter

[in] DeviceContext

Zeigt auf den vom Miniporttreiber definierten Kontextwert, der an ScsiPortWmiDispatchFunction übergeben wird.

[in] RequestContext

Verweist auf die SCSIWMI_REQUEST_CONTEXT Struktur, die der Miniporttreiber an ScsiPortWmiDispatchFunction übergeben hat.

[in] GuidIndex

Gibt den Datenblock anhand seines Indexes in der Liste der GUIDs in der SCSI_WMILIB_CONTEXT-Struktur an, die der Miniporttreiber an ScsiPortWmiDispatchFunction übergeben hat.

[in] InstanceIndex

Wenn der durch GuidIndex angegebene Block über mehrere Instanzen verfügt, gibt InstanceIndex die instance an.

[in] DataItemId

Gibt die ID des festzulegenden Datenelements an.

[in] BufferSize

Gibt die Größe des Puffers bei Buffer in Byte an.

[in] Buffer

Verweist auf einen Puffer, der den neuen Wert für das Datenelement enthält.

Rückgabewert

HwScsiWmiSetDataItem gibt SRB_STATUS_PENDING zurück, wenn die Anforderung aussteht, oder einen SRB-Wert ungleich null status, wenn die Anforderung abgeschlossen wurde. Der SRB-status Wert, der von dieser Routine zurückgegeben wird, entspricht dem wert, der an HwScsiWmiSetDataItem übergeben wurde. Obwohl der Rückgabewertdatentyp BOOLEAN ist, gibt die HwScsiWmiSetDataItem-Routine tatsächlich einen SRB-status Wert zurück.

Hinweise

Wenn ein Miniporttreiber einen SRB empfängt, in dem der Function-Member auf SRB_FUNCTION_WMI festgelegt ist, ruft er ScsiPortWmiDispatchFunction mit einem Zeiger auf eine initialisierte SCSI_WMILIB_CONTEXT-Struktur und MinorFunction auf Srb-WmiSubFunction>. Der SCSI-Porttreiber ruft die HwScsiWmiSetDataItem-Routine des Miniporttreibers auf, wenn MinorFunction eine Anforderung zum Ändern eines Elements in einem instance eines Datenblocks angibt.

Wenn ein Miniporttreiber keine HwScsiWmiSetDataItem-Routine implementiert, muss SetWmiDataItem im SCSI_WMILIB_CONTEXT der Miniporttreiber an ScsiPortWmiDispatchFunction übergibt, auf NULL festgelegt werden. In diesem Fall gibt der Porttreiber SRB_STATUS_ERROR an den Aufrufer zurück.

Wenn die Anforderung keinen Pend ausführt, sollte der Miniporttreiber ScsiPortWmiPostProcess in seinem HwScsiWmiSetDataItem-Rückruf aufrufen. Andernfalls sollte der Miniporttreiber ScsiPortWmiPostProcess aufrufen, wenn die Anforderung tatsächlich abgeschlossen ist. Der Miniporttreiber sollte ScsiPortWmiPostProcess mit dem entsprechenden SrbStatus-Wert aufrufen.

Wenn das Element schreibgeschützt ist, ruft der Miniporttreiber ScsiPortWmiPostProcess mit SRB_STATUS_ERROR auf. Andernfalls ändert der Miniporttreiber das Element und ruft ScsiPortWmiPostProcess mit SRB_STATUS_SUCCESS auf.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile scsiwmi.h (Scsiwmi.h einschließen)

Weitere Informationen

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess