Fonction ScsiPortWmiPostProcess (scsiwmi.h)
La routine ScsiPortWmiPostProcess met à jour un contexte de requête pour un SRB WMI.
Syntaxe
void ScsiPortWmiPostProcess(
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] UCHAR SrbStatus,
[in] ULONG BufferUsed
);
Paramètres
[in] RequestContext
Pointeur vers le contexte de demande pour ce SRB.
[in] SrbStatus
Spécifie tous les status SRB valides. Si la mémoire tampon de sortie passée au pilote miniport était trop petite pour contenir toutes les données d’une requête, le pilote miniport définit SrbStatus sur SRB_STATUS_DATA_OVERRUN.
[in] BufferUsed
Si SrbStatus indique la réussite, le pilote miniport définit BufferUsed sur le nombre d’octets de données écrites dans la mémoire tampon. Si SrbStatus est SRB_STATUS_DATA_OVERRUN, le pilote miniport définit BufferUsed sur le nombre d’octets requis pour effectuer le SRB correctement.
Valeur de retour
None
Remarques
Un pilote miniport doit appeler ScsiPortWmiPostProcess une fois que la requête WMI SRB a été traitée et est prête à être terminée.
Pour les SSB synchrones, ScsiPortWmiPostProcess est appelé dans la routine de rappel.
Pour les SRB en attente, ScsiPortWmiPostProcess est appelé après le traitement du SRB et avant sa fin.
Si un pilote miniport définit SrbStatus sur SRB_STATUS_DATA_OVERRUN et définit BufferUsed, les SRB WMI successifs identiques avec une mémoire tampon allouée égale ou supérieure à BufferUsed octets doivent réussir. Cela doit être effectué si le pilote définit la valeur exacte pour BufferUsed nécessaire pour terminer la demande lors de l’appel de ScsiPortWmiPostProcess avec SrbStatus égal à SRB_STATUS_DATA_OVERRUN. Pour une structure de sortie de taille variable, la mémoire tampon de données d’entrée du SRB doit avoir suffisamment d’informations pour déterminer la valeur exacte de BufferUsed . Si la mémoire tampon de données d’entrée ne contient pas suffisamment d’informations, le pilote ne doit jamais échouer le même SRB deux fois avec SRB_STATUS_DATA_OVERRUN. Au lieu de cela, le pilote doit définir SRB_STATUS_DATA_OVERRUN et demander d’abord la taille minimale nécessaire pour la mémoire tampon de sortie, puis définir SRB_STATUS_SUCCESS et indiquer l’échec dans le contenu de la mémoire tampon de sortie.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | scsiwmi.h (inclure Miniport.h, Scsi.h) |