PSCSIWMI_SET_DATABLOCK fonction de rappel (scsiwmi.h)
La routine du pilote miniport HwScsiWmiSetDataBlock est appelée pour modifier tous les éléments de données dans une seule instance d’un bloc de données. Cette routine est facultative.
Syntaxe
PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;
BOOLEAN PscsiwmiSetDatablock(
[in] PVOID DeviceContext,
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] ULONG GuidIndex,
[in] ULONG InstanceIndex,
[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] BufferSize
Spécifie la taille en octets de la mémoire tampon à tampon.
[in] Buffer
Pointe vers une mémoire tampon qui contient de nouvelles valeurs pour l’instance.
Valeur de retour
HwScsiWmiSetDataBlock retourne SRB_STATUS_PENDING si la requête est en attente, ou une valeur d’état SRB différente de zéro si la requête a été terminée. La valeur d’état SRB retournée par cette routine est identique à ce qui a été passé à ScsiPortWmiPostProcess.
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 Block du pilote miniport si MinorFunction indique une demande de modification d’une instance d’un bloc de données.
Si un pilote miniport n’implémente pas de routine HwScsiWmiSetDataBlock, il doit définir SetWmiDataBlock 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 le pilote miniport implémente HwScsiWmiSetDataBlock il doit remplacer l’instance du bloc de données par les nouvelles valeurs de la mémoire tampon.
Si tous les éléments du bloc de données sont en lecture seule, le pilote miniport doit retourner SRB_STATUS_ERROR. Sinon, le pilote miniport modifie les éléments qu’il peut et retourne SRB_STATUS_SUCCESS.
Le pilote miniport doit appeler ScsiPortWmiPostProcess avec une valeur de SrbStatus appropriée lorsque la requête est terminée. Si la requête ne se pend pas, ScsiPortWmiPostProcess doit être appelée dans le rappel HwScsiWmiSetDataBlock. Sinon, ScsiPortWmiPostProcess doit être appelée lorsque la requête est réellement terminée.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | scsiwmi.h (include Scsiwmi.h) |