Condividi tramite


PSCSIWMI_SET_DATAITEM funzione di callback (scsiwmi.h)

Viene chiamata la routine HwScsiWmiSetDataItem di un driver miniport per modificare un singolo elemento di dati in un'istanza di un blocco di dati. Questa routine è facoltativa.

Nota I modelli di driver porta SCSI e miniport SCSI potrebbero essere modificati o non disponibili in futuro. È invece consigliabile usare driver Storport e modelli di driver miniport Storport.
 

Sintassi

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

Parametri

[in] DeviceContext

Punta al valore del contesto definito dal driver miniport passato a ScsiPortWmiDispatchFunction.

[in] RequestContext

Punta alla struttura SCSIWMI_REQUEST_CONTEXT passata dal driver miniport a ScsiPortWmiDispatchFunction.

[in] GuidIndex

Specifica il blocco di dati in base al relativo indice nell'elenco dei GUID nella struttura SCSI_WMILIB_CONTEXT che il driver miniport passato a ScsiPortWmiDispatchFunction.

[in] InstanceIndex

Se il blocco specificato da GuidIndex dispone di più istanze, InstanceIndex specifica l'istanza.

[in] DataItemId

Specifica l'ID dell'elemento di dati da impostare.

[in] BufferSize

Specifica le dimensioni in byte del buffer in buffer.

[in] Buffer

Punta a un buffer che contiene il nuovo valore per l'elemento di dati.

Valore restituito

HwScsiWmiSetDataItem restituisce SRB_STATUS_PENDING se la richiesta è in sospeso o un valore di stato SRB diverso da zero se la richiesta è stata completata. Il valore di stato SRB restituito da questa routine corrisponde a quello passato a HwScsiWmiSetDataItem. Anche se il tipo di dati del valore restituito è BOOLEAN, la routine HwScsiWmiSetDataItem restituisce effettivamente un valore di stato SRB.

Osservazioni

Quando un driver miniport riceve un SRB in cui il membro funzione è impostato su SRB_FUNCTION_WMI, chiama ScsiPortWmiDispatchFunction con un puntatore a una struttura SCSI_WMILIB_CONTEXT inizializzata e MinorFunction impostato su Srb->WmiSubFunction. Il driver di porta SCSI chiama la routine del driver miniport HwScsiWmiSetDataItem se MinorFunction indica una richiesta di modifica di un elemento in un'istanza di un blocco di dati.

Se un driver miniport non implementa una routine HwScsiWmiSetDataItem, deve impostare SetWmiDataItem su NULL nel SCSI_WMILIB_CONTEXT il driver miniport passa a ScsiPortWmiDispatchFunction. In questa circostanza, il driver della porta restituirà SRB_STATUS_ERROR al chiamante.

Se la richiesta non viene eseguita tramite penna, il driver miniport deve chiamare ScsiPortWmiPostProcess nella relativa HwScsiWmiSetDataItem callback. In caso contrario, il driver miniport deve chiamare ScsiPortWmiPostProcess al termine della richiesta. Il driver miniport deve chiamare ScsiPortWmiPostProcess con il valore SrbStatus appropriato.

Se l'elemento è di sola lettura, il driver miniport chiama ScsiPortWmiPostProcess con SRB_STATUS_ERROR. In caso contrario, il driver miniport modifica l'elemento e chiama ScsiPortWmiPostProcess con SRB_STATUS_SUCCESS.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione scsiwmi.h (include Scsiwmi.h)

Vedere anche

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess