Partager via


PSCSIWMI_SET_DATAITEM fonction de rappel (scsiwmi.h)

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

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

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 passé à ScsiPortWmiDispatchFunction.

[in] GuidIndex

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

[in] InstanceIndex

Si le bloc spécifié par guidIndex a plusieurs instances, InstanceIndex spécifie l’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 à tampon.

[in] Buffer

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

Valeur de retour

HwScsiWmiSetDataItem retourne SRB_STATUS_PENDING si la requête est en attente, ou une valeur d’état SRB différente de zéro si la demande a été terminée. La valeur d’état SRB retournée par cette routine est identique à ce qui a été transmis à HwScsiWmiSetDataItem. Bien que le type de données de valeur de retour soit BOOLEAN, la HwScsiWmiSetDataItem routine retourne réellement une valeur d’état SRB.

Remarques

Lorsqu’un pilote miniport reçoit un SRB dans lequel le membre function de est défini sur SRB_FUNCTION_WMI, il appelle ScsiPortWmiDispatchFunction avec un pointeur vers une structure de SCSI_WMILIB_CONTEXT initialisée et MinorFunction défini sur Srb->WmiSubFunction. Le pilote de port SCSI appelle la routine HwScsiWmiSetData Item du pilote miniport si MinorFunction indique une demande de modification d’un élément dans une 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 ne se pend pas, le pilote miniport doit appeler ScsiPortWmiPostProcess dans son HwScsiWmiSetDataItem rappel. Sinon, le pilote miniport doit appeler ScsiPortWmiPostProcess lorsque la requête est réellement terminée. Le pilote miniport doit appeler ScsiPortWmiPostProcess avec la valeur de 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.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête scsiwmi.h (include Scsiwmi.h)

Voir aussi

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess