Partager via


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

La Write méthode é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 à 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 dans le périphérique de sortie MIDI. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

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 status de retour possibles.

Code de retour 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 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 :

  • Même valeur que BytesToWrite. Cette valeur indique que la méthode a réussi à écrire tous les octets BytesToWrite de données sur l’appareil.
  • Multiple de quatre inférieur à BytesToWrite. Si la méthode est en mesure d’écrire certaines données de l’appelant, mais pas toutes, sur l’appareil, elle 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 en cours, mais que l’appelant doit réessayer ultérieurement. Le pilote miniport est chargé de distinguer un appareil occupé d’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 octet.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête portcls.h (include Portcls.h)
IRQL DISPATCH_LEVEL

Voir aussi

IMiniportMidiStream

IMiniportMidiStream ::Read