Règles pour plusieurs canaux
Vous pouvez combiner les paramètres de canal [in], [out] et [in, out] dans n’importe quelle combinaison dans un seul appel, mais vous devez traiter les canaux dans un ordre spécifique, comme illustré dans l’exemple de pseudocode suivant :
Notes
Cette fonctionnalité n’est plus prise en charge dans Windows Vista et les plateformes ultérieures.
- Obtenez les données de chaque canal d’entrée, en commençant par le premier paramètre (le plus à gauche) [in] et en continuant dans l’ordre, en drainant chaque canal avant de commencer à traiter le suivant.
- Une fois que chaque canal d’entrée a été entièrement traité, envoyez les données pour les canaux de sortie, en commençant à nouveau par le premier paramètre [out] et en continuant dans l’ordre, en remplissant chaque canal avant de commencer à traiter le suivant.
//in .IDL file:
void InOutUCharPipe( [in,out] UCHAR_PIPE *uchar_pipe_1,
[out] UCHAR_PIPE * uchar_pipe_2,
[in] UCHAR_PIPE uchar_pipe_3);
//remote procedure:
void InOutUCharPipe( UCHAR_PIPE *param1,
UCHAR_PIPE *param2,
UCHAR_PIPE param3)
{
while(!END_OF_PIPE1)
{
param1->pull (. . .);
. . .
};
while(!END_OF_PIPE3)
{
param3.pull (. . .);
. . .
};
while(!END_OF_PIPE1)
{
param1->push (. . .);
. . .
};
while(!END_OF_PIPE2)
{
param2->push(. . .);
. . .
};
} //end InOutUCharPipe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour