État du canal
Sur le serveur, le compilateur MIDL crée une variable d’état qui coordonne les procédures push, pull et alloc. Côté client, le développeur doit créer la variable d’état . Par conséquent, la variable d’état est locale des deux côtés, c’est-à-dire que le client et le serveur conservent chacun leur propre état de canal. Le code stub du serveur conserve la variable d’état sur le serveur. Vous ne devez pas essayer de modifier son contenu directement. Le client doit initialiser les champs dans la structure de contrôle de canal et conserver sa variable d’état . Il utilise la variable d’état pour identifier où localiser ou placer des données.
La variable d’état du client peut être aussi simple qu’un handle de fichier, si vous transférez des données d’un fichier à un autre. Il peut également s’agir d’un entier qui pointe vers un élément dans un tableau. Vous pouvez également définir une structure d’état assez complexe pour effectuer des tâches supplémentaires, telles que la coordination des routines push et pull sur un paramètre [ in, out].