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 |
---|---|
|
L’appel a échoué en raison d’une erreur d’appareil. |
|
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 |