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