Partager via


PSCSIWMI_SET_DATAITEM fonction de rappel (scsiwmi.h)

La routine HwScsiWmiSetDataItem d’un pilote miniport est appelée pour modifier un seul élément de données dans un instance d’un bloc de données. Cette routine est facultative.

Note Les modèles de pilote de port SCSI et de pilote miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser les modèles de pilote Storport et de pilote Miniport Storport .
 

Syntaxe

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

Paramètres

[in] DeviceContext

Pointe vers la valeur de contexte définie par le pilote miniport passée à ScsiPortWmiDispatchFunction.

[in] RequestContext

Pointe vers la structure SCSIWMI_REQUEST_CONTEXT que le pilote miniport a transmise à ScsiPortWmiDispatchFunction.

[in] GuidIndex

Spécifie le bloc de données par son index dans la liste des GUID de la structure SCSI_WMILIB_CONTEXT que le pilote miniport a transmise à ScsiPortWmiDispatchFunction.

[in] InstanceIndex

Si le bloc spécifié par GuidIndex a plusieurs instances, InstanceIndex spécifie le instance.

[in] DataItemId

Spécifie l’ID de l’élément de données à définir.

[in] BufferSize

Spécifie la taille en octets de la mémoire tampon dans Mémoire tampon.

[in] Buffer

Pointe vers une mémoire tampon qui contient la nouvelle valeur de l’élément de données.

Valeur retournée

HwScsiWmiSetDataItem retourne SRB_STATUS_PENDING si la demande est en attente ou une valeur SRB status différente de zéro si la demande a été effectuée. La valeur de status SRB retournée par cette routine est identique à ce qui a été passé à HwScsiWmiSetDataItem. Bien que le type de données de la valeur de retour soit BOOLEAN, la routine HwScsiWmiSetDataItem retourne en fait une valeur de status SRB.

Remarques

Lorsqu’un pilote miniport reçoit un SRB dans lequel le membre function est défini sur SRB_FUNCTION_WMI, il appelle ScsiPortWmiDispatchFunction avec un pointeur vers une structure SCSI_WMILIB_CONTEXT initialisée et MinorFunction défini sur Srb-WmiSubFunction>. Le pilote de port SCSI appelle la routine HwScsiWmiSetDataItem du pilote miniport si MinorFunction indique une demande de modification d’un élément dans un instance d’un bloc de données.

Si un pilote miniport n’implémente pas de routine HwScsiWmiSetDataItem , il doit définir SetWmiDataItem sur NULL dans le SCSI_WMILIB_CONTEXT le pilote miniport passe à ScsiPortWmiDispatchFunction. Dans ce cas, le pilote de port retourne SRB_STATUS_ERROR à l’appelant.

Si la requête n’est pas interrompue, le pilote miniport doit appeler ScsiPortWmiPostProcess dans son rappel HwScsiWmiSetDataItem . Sinon, le pilote miniport doit appeler ScsiPortWmiPostProcess lorsque la demande est réellement terminée. Le pilote miniport doit appeler ScsiPortWmiPostProcess avec la valeur SrbStatus appropriée.

Si l’élément est en lecture seule, le pilote miniport appelle ScsiPortWmiPostProcess avec SRB_STATUS_ERROR. Sinon, le pilote miniport modifie l’élément et appelle ScsiPortWmiPostProcess avec SRB_STATUS_SUCCESS.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête scsiwmi.h (inclure Scsiwmi.h)

Voir aussi

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess