Freigeben über


PSCSIWMI_SET_DATABLOCK Rückruffunktion (scsiwmi.h)

Die HwScsiWmiSetDataBlock-Routine eines Miniporttreibers wird aufgerufen, um alle Datenelemente in einem einzelnen 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_DATABLOCK PscsiwmiSetDatablock;

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

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

[in] Buffer

Verweist auf einen Puffer, der neue Werte für die instance enthält.

Rückgabewert

HwScsiWmiSetDataBlock gibt SRB_STATUS_PENDING zurück, wenn die Anforderung aussteht, oder einen SRB-Wert ungleich null status, wenn die Anforderung abgeschlossen wurde. Der von dieser Routine zurückgegebene SRB-status-Wert entspricht dem wert, der an ScsiPortWmiPostProcess übergeben wurde.

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 HwScsiWmiSetDataBlock-Routine des Miniporttreibers auf, wenn MinorFunction eine Anforderung zum Ändern eines instance eines Datenblocks angibt.

Wenn ein Miniporttreiber keine HwScsiWmiSetDataBlock-Routine implementiert, muss SetWmiDataBlock 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 der Miniporttreiber HwScsiWmiSetDataBlock implementiert, sollte die instance des Datenblocks in die neuen Werte aus dem Puffer geändert werden.

Wenn alle Elemente im Datenblock schreibgeschützt sind, sollte der Miniporttreiber SRB_STATUS_ERROR zurückgeben. Andernfalls ändert der Miniporttreiber die Elemente, die er kann, und gibt SRB_STATUS_SUCCESS zurück.

Der Miniporttreiber sollte ScsiPortWmiPostProcess mit einem entsprechenden SrbStatus-Wert aufrufen, wenn die Anforderung abgeschlossen ist. Wenn die Anforderung keinen Pend ausführt, sollte ScsiPortWmiPostProcess im HwScsiWmiSetDataBlock-Rückruf aufgerufen werden. Andernfalls sollte ScsiPortWmiPostProcess aufgerufen werden, wenn die Anforderung tatsächlich abgeschlossen ist.

Anforderungen

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

Weitere Informationen

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess