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