Partager via


ChangerClassSendSrbSynchronous, fonction (mcd.h)

Le ChangerClassSendSrbSynchronous routine 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êtes SCSI partiellement initialisé (SRB) à envoyer à l’appareil cible.

[in] Buffer

Spécifie l’adresse de la mémoire tampon vers laquelle >DataBuffer doit pointer. ChangerClassSendSrbSynchronous crée un MDL pour cette mémoire tampon et le 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 lorsque TRUE et l’opération de lecture quand FAUX.

Valeur de retour

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

Remarques

Changer les pilotes de miniclasse peut appeler cette routine de pilote de classe dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs. Les pilotes miniclasses doivent utiliser cette routine pour envoyer un SRB au pilote de port au lieu d’appeler directement la routine de bibliothèque classpnp.sysClassSendSrbSynchronou s. Bien que classpnp.sys soit fourni avec le Kit de pilotes Windows (WDK), il n’est pas une API prise en charge, et les pilotes qui appellent directement les routines de cette bibliothèque peuvent 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.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête mcd.h (include Mcd.h, Ntddchgr.h)
bibliothèque Mcd.lib

Voir aussi

SCSI_REQUEST_BLOCK