Partager via


Fonction ScsiPortWmiPostProcess (scsiwmi.h)

La routine ScsiPortWmiPostProcess met à jour un contexte de requête pour un SRB WMI.

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

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)

Voir aussi

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus