PSCSIWMI_SET_DATABLOCK funzione di callback (scsiwmi.h)

Viene chiamata la routine HwScsiWmiSetDataBlock di un driver miniport per modificare tutti gli elementi di dati in una singola istanza di un blocco di dati. Questa routine è facoltativa.

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

Sintassi

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

Parametri

[in] DeviceContext

Punta al valore di 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 di GUID nella struttura SCSI_WMILIB_CONTEXT che il driver miniport passato a ScsiPortWmiDispatchFunction.

[in] InstanceIndex

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

[in] BufferSize

Specifica le dimensioni in byte del buffer in Buffer.

[in] Buffer

Punta a un buffer che contiene nuovi valori per l'istanza di .

Valore restituito

HwScsiWmiSetDataBlock 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 ScsiPortWmiPostProcess.

Commenti

Quando un driver miniport riceve un SRB in cui il membro Function è 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 HwScsiWmiSetDataBlock del driver miniport se MinorFunction indica una richiesta di modifica di un'istanza di un blocco di dati.

Se un driver miniport non implementa una routine HwScsiWmiSetDataBlock , deve impostare SetWmiDataBlock su NULL nel SCSI_WMILIB_CONTEXT il driver miniport passa a ScsiPortWmiDispatchFunction. In questo caso, il driver della porta restituisce SRB_STATUS_ERROR al chiamante.

Se il driver miniport implementa HwScsiWmiSetDataBlock , deve modificare l'istanza del blocco di dati in base ai nuovi valori dal buffer.

Se tutti gli elementi nel blocco dati sono di sola lettura, il driver miniport deve restituire SRB_STATUS_ERROR. In caso contrario, il driver miniport modifica gli elementi che può e restituisce SRB_STATUS_SUCCESS.

Il driver miniport deve chiamare ScsiPortWmiPostProcess con un valore SrbStatus appropriato al termine della richiesta. Se la richiesta non viene eseguita tramite penna, è necessario chiamare ScsiPortWmiPostProcess nel callback HwScsiWmiSetDataBlock . In caso contrario, è necessario chiamare ScsiPortWmiPostProcess al termine della richiesta.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione scsiwmi.h (include Scsiwmi.h)

Vedi anche

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess