Condividi tramite


PSCSIWMI_FUNCTION_CONTROL funzione di callback (scsiwmi.h)

Viene chiamata routine HwScsiWmiFunctionControl di un driver miniport per abilitare o disabilitare la notifica degli eventi. Viene chiamato anche per abilitare o disabilitare la raccolta dei dati per i blocchi di dati che il driver miniport designato come costoso da raccogliere. 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_FUNCTION_CONTROL PscsiwmiFunctionControl;

BOOLEAN PscsiwmiFunctionControl(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] SCSIWMI_ENABLE_DISABLE_CONTROL Function,
  [in] BOOLEAN Enable
)
{...}

Parametri

[in] DeviceContext

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

[in] RequestContext

Punta a un valore contenente un valore enumeratore di tipo SCSIWMI_REQUEST_CONTEXT che il driver miniport passato a ScsiPortWmiDispatchFunction.

[in] GuidIndex

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

[in] Function

Specifica ScsiWmiEventControl per abilitare o disabilitare un evento oppure ScsiWmiDataBlockControl per abilitare o disabilitare la raccolta di dati per un blocco registrato come costoso da raccogliere, ovvero un blocco per cui il driver miniport WMIREG_FLAG_EXPENSIVE impostato WMIREG_FLAG_EXPENSIVE in Flags della struttura SCSIWMIGUIDREGINFO usata per registrare il blocco.

[in] Enable

Specifica TRUE per abilitare l'evento o la raccolta dati oppure FALSE per disabilitarla.

Valore restituito

HwScsiWmiFunctionControl 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 equivale a quello passato a ScsiPortWmiPostProcess. Anche se il tipo di dati del valore restituito è BOOLEAN, la routine HwScsiWmiFunctionControl 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 routine HwScsiWmiFunctionControl di un driver miniport se MinorFunction indica una richiesta di abilitare o disabilitare un evento oppure di abilitare o disabilitare la raccolta per un blocco di dati registrato come costoso da raccogliere dal driver miniport.

Se un driver miniport non implementa una routine HwScsiWmiFunctionControl, deve impostare WmiFunctionControl su NULL nel SCSI_WMILIB_CONTEXT il driver miniport passa a ScsiPortWmiDispatchFunction. Il driver della porta restituisce SRB_STATUS_SUCCESS al chiamante.

Non è necessario che il driver miniport controlli se gli eventi o la raccolta dati sono già abilitati per un blocco perché il driver della porta invia una singola richiesta di abilitazione quando il primo consumer di dati abilita il blocco e invia una singola richiesta di disabilitazione quando l'ultimo consumer di dati disabilita il blocco. Il driver della porta non chiamerà HwScsiWmiFunctionControl più volte per abilitare un blocco senza una chiamata per disabilitarla.

Se SRB viene completato nel callback HwScsiWmiFunctionControl, il driver miniport chiama ScsiPortWmiPostProcess con un SrbStatusappropriato. Se il driver miniport esegue la penna di questo SRB, deve chiamare ScsiPortWmiPostProcess al termine di SRB e prima di completare SRB.

Fabbisogno

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

Vedere anche

SCSIWMIGUIDREGINFO

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess