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