PSCSIWMI_SET_DATABLOCK fonction de rappel (scsiwmi.h)
La routine HwScsiWmiSetDataBlock d’un pilote miniport 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 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] 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 de nouvelles valeurs pour le instance.
Valeur retournée
HwScsiWmiSetDataBlock 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é à ScsiPortWmiPostProcess.
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 HwScsiWmiSetDataBlock 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 une 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 modifier la 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 SrbStatus appropriée lorsque la demande est terminée. Si la requête n’est pas interrompue, ScsiPortWmiPostProcess doit être appelé dans le rappel HwScsiWmiSetDataBlock . Sinon, ScsiPortWmiPostProcess doit être appelé lorsque la demande est réellement terminée.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | scsiwmi.h (inclure Scsiwmi.h) |