PSCSIWMI_SET_DATAITEM Rückruffunktion (scsiwmi.h)
Die HwScsiWmiSetDataItem Routine eines Miniporttreibers wird aufgerufen, um ein einzelnes Datenelement in einer Instanz 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
Verweist auf den miniport treiberdefinierten 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 mehrere Instanzen aufweist, gibt InstanceIndex- die Instanz an.
[in] DataItemId
Gibt die ID des festzulegenden Datenelements an.
[in] BufferSize
Gibt die Größe in Byte des Puffers bei Puffer-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 Nichtzero-SRB-Statuswert, wenn die Anforderung abgeschlossen wurde. Der von dieser Routine zurückgegebene SRB-Statuswert entspricht dem, was an HwScsiWmiSetDataItem-übergeben wurde. Obwohl der Rückgabewert-Datentyp BOOLEAN ist, gibt die HwScsiWmiSetDataItem- Routine tatsächlich einen SRB-Statuswert zurück.
Bemerkungen
Wenn ein Miniporttreiber einen SRB empfängt, in dem das Function Member auf SRB_FUNCTION_WMI festgelegt ist, ruft er ScsiPortWmiDispatchFunction mit einem Zeiger auf eine initialisierte SCSI_WMILIB_CONTEXT Struktur auf und MinorFunction auf Srb->WmiSubFunctionfestgelegt. Der SCSI-Porttreiber ruft die HwScsiWmiSetDataItem Routine des Miniporttreibers auf, wenn MinorFunction- eine Anforderung angibt, ein Element in einer Instanz eines Datenblocks zu ändern.
Wenn ein Miniporttreiber keine HwScsiWmiSetDataItem- Routine implementiert, muss SetWmiDataItem- auf NULL- im SCSI_WMILIB_CONTEXT der Miniporttreiber an ScsiPortWmiDispatchFunctionfestgelegt werden. In diesem Fall gibt der Porttreiber SRB_STATUS_ERROR an den Anrufer zurück.
Wenn die Anforderung nicht eingestiftet wird, 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 |
Header- | scsiwmi.h (include Scsiwmi.h) |