Partager via


IMiniportMidiStream ::Write, méthode (portcls.h)

La méthode Write écrit des données dans un flux MIDI sortant.

Syntaxe

NTSTATUS Write(
  [in]  PVOID  BufferAddress,
  [in]  ULONG  BytesToWrite,
  [out] PULONG BytesWritten
);

Paramètres

[in] BufferAddress

Pointeur vers une mémoire tampon allouée par l’appelant qui contient les données MIDI sortantes

[in] BytesToWrite

Spécifie le nombre d’octets de données MIDI contenues dans la mémoire tampon vers laquelle BufferAddress pointe.

[out] BytesWritten

Pointeur de sortie vers une variable allouée par l’appelant dans laquelle la méthode écrit un nombre spécifiant le nombre réel d’octets que la méthode a réussi à écrire sur l’appareil de sortie MIDI. Pour plus d’informations, consultez la section Remarques suivante.

Valeur de retour

Write retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié. Le tableau suivant présente certains des codes d’état de retour possibles.

Retourner le code Description
STATUS_IO_DEVICE_ERROR
L’appel a échoué en raison d’une erreur d’appareil.
STATUS_INVALID_DEVICE_REQUEST
Demande d’appareil non valide (par exemple, appel de Write sur un flux d’entrée MIDI).

Remarques

Si la méthode réussit, elle génère l’une des valeurs suivantes à l’appelant via le paramètre BytesWritten :

  • La même valeur que BytesToWrite. Cette valeur indique que la méthode a réussi à écrire toutes les OctetsToWrite octets de données sur l’appareil.
  • Plusieurs de quatre octets inférieurs à octetsToWrite. Si la méthode est en mesure d’écrire certaines données, mais pas toutes les données de l’appelant sur l’appareil, il doit écrire un nombre d’octets qui est un multiple de quatre. Cette valeur indique que l’appelant doit effectuer un autre appel à la méthode pour écrire les données restantes.
  • Zéro. Cette valeur indique que l’appareil est trop occupé pour écrire les données de l’appelant pendant l’appel actuel, mais que l’appelant doit réessayer ultérieurement. Le pilote miniport est responsable de la distinction entre un appareil occupé et une erreur d’appareil. La méthode doit éviter de générer une succession infinie d’appels qui retournent toujours la réussite, mais écrivent zéro octets.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête portcls.h (include Portcls.h)
IRQL DISPATCH_LEVEL

Voir aussi

IMiniportMidiStream

IMiniportMidiStream ::Read