Share via


ChangerClassSendSrbSynchronous, fonction (mcd.h)

La routine ChangerClassSendSrbSynchronous envoie de façon synchrone un SRB à un appareil spécifié.

Syntaxe

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

Paramètres

[in] DeviceObject

Pointeur vers l’objet d’appareil fonctionnel de l’appareil cible.

[in] Srb

Pointeur vers un bloc de requête SCSI partiellement initialisé (SRB) à envoyer à l’appareil cible.

[in] Buffer

Spécifie l’adresse de la mémoire tampon vers laquelle Srb-DataBuffer> doit pointer. ChangerClassSendSrbSynchronous crée une MDL pour cette mémoire tampon et la transmet au pilote de périphérique cible dans l’IRP SRB.

[in] BufferSize

Spécifie la longueur, en octets, de la mémoire tampon.

[in] WriteToDevice

Indique une opération d’écriture quand true et une opération de lecture quand FALSE.

Valeur retournée

Retourne STATUS_SUCCESS si le SRB est transmis correctement ou le code d’erreur approprié si le SRB échoue ou ne peut pas être envoyé pour une raison quelconque.

Remarques

Les pilotes de miniclasse changer peuvent appeler cette routine de pilote de classe dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs. Les pilotes de miniclasse doivent utiliser cette routine pour envoyer un SRB au pilote de port au lieu d’appeler directement la routine de la bibliothèque classpnp.sysClassSendSrbSynchronous . Bien que classpnp.sys soit fourni avec le Kit de pilotes Windows (WDK), il ne s’agit pas d’une API prise en charge, et les pilotes qui appellent directement les routines de cette bibliothèque risquent de ne pas fonctionner correctement dans les versions ultérieures.

ChangerClassSendSrbSynchronous termine l’initialisation du SRB partiellement initialisé, en définissant les indicateurs du SRB avec les valeurs indiquées dans l’objet d’appareil de la cible. ChangerClassSendSrbSynchronous crée l’IRP utilisé pour transmettre le SRB à l’appareil cible, envoie l’IRP, puis gère l’achèvement de l’IRP.

Si l’IRP échoue et que les données de demande de sens indiquent que l’IRP doit être retenté, ChangerClassSendSrbSynchronous renvoie l’IRP.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête mcd.h (inclure Mcd.h, Ntddchgr.h)
Bibliothèque Mcd.lib

Voir aussi

SCSI_REQUEST_BLOCK