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