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