Partager via


Fonction ScsiPortWmiPostProcess (scsiwmi.h)

La routine ScsiPortWmiPostProcess met à jour un contexte de demande pour un SRB WMI.

Remarque Le pilote de port SCSI et les modèles de pilotes miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le du pilote Storport et modèles de pilotes Storport miniport.
 

Syntaxe

void ScsiPortWmiPostProcess(
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] UCHAR                    SrbStatus,
  [in] ULONG                    BufferUsed
);

Paramètres

[in] RequestContext

Pointeur vers le contexte de requête pour ce SRB.

[in] SrbStatus

Spécifie tout état SRB valide. 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 à SRB_STATUS_DATA_OVERRUN.

[in] BufferUsed

Si SrbStatus indique la réussite, le pilote miniport définit BufferUsed le nombre d’octets de données écrits dans la mémoire tampon. Si SrbStatus est SRB_STATUS_DATA_OVERRUN, le pilote miniport définit BufferUsed le nombre d’octets requis pour terminer correctement le SRB.

Valeur de retour

Aucun

Remarques

Un pilote miniport doit appeler ScsiPortWmiPostProcess une fois la requête SRB WMI traitée et prête à être terminée.

Pour les bases de données SRB synchrones, ScsiPortWmiPostProcess est appelée dans la routine de rappel.

Pour les SRC en attente, ScsiPortWmiPostProcess est appelée 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 bases de données WMI identiques successives avec une mémoire tampon allouée égale ou supérieure à TamponUsed octets doivent réussir. Pour ce faire, si le pilote définit la valeur exacte de BufferUsed nécessaire pour terminer la requête 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 de bufferUsed exacte. Si la mémoire tampon de données d’entrée ne contient pas suffisamment d’informations, le pilote ne doit jamais échouer deux fois avec SRB_STATUS_DATA_OVERRUN. Au lieu de cela, le pilote doit définir SRB_STATUS_DATA_OVERRUN et demander la taille minimale nécessaire pour la mémoire tampon de sortie en premier, puis définir SRB_STATUS_SUCCESS et indiquer l’échec dans le contenu de la mémoire tampon de sortie.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête scsiwmi.h (include Miniport.h, Scsi.h)

Voir aussi

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus