WritePort, fonction (winsplp.h)
La fonction WritePort
d’un moniteur de port écrit des données dans un port d’imprimante.
Syntaxe
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
Paramètres
[in] hPort
Handle de port fourni par l’appelant.
[in] pBuffer
Pointeur fourni par l’appelant vers une mémoire tampon contenant des données à écrire dans le port.
cbBuf
Taille fournie par l’appelant, en octets, de pBuffer .
[out] pcbWritten
Pointeur fourni par l’appelant vers un emplacement pour recevoir le nombre d’octets écrits avec succès dans le port.
Valeur de retour
Si l’opération réussit, la fonction doit retourner TRUE. Sinon, elle doit retourner FALSE.
Remarques
moniteurs de langage et les DLL du serveur de surveillance de port sont nécessaires pour définir une fonction WritePort
et inclure l’adresse de la fonction dans une structure MONITOR2.
Le handle reçu en tant qu’argument hPort de la fonction est le handle de port fourni par la fonction openPort ou OpenPortEx du moniteur.
En règle générale, la fonction WritePort
d’un moniteur de langage ajoute des commandes spécifiques à la langue du flux de données contenu dans la mémoire tampon pointée par pBuffer, puis transmet le flux de données modifié à la fonction WritePort
du moniteur de port.
La fonction WritePort
d’un serveur de moniteur de port appelle généralement writeFile (décrit dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows) pour envoyer le flux de données au pilote de port en mode noyau.
Un travail d’impression classique se compose de plusieurs appels à WritePort
. Chaque appel peut avoir une valeur cbBuf différente.
La fonction doit renvoyer le nombre d’octets correctement écrits en plaçant le nombre à l’emplacement vers lequel pointe . Pour les moniteurs de langue, ce nombre ne doit pas inclure le nombre d’octets supplémentaires spécifiques à la langue ajoutés au flux de données.
Le spouleur détermine la réussite ou l’échec de l’opération d’écriture en vérifiant WritePort
valeur de retour, et non le nombre d’octets retournés. Par conséquent, un nombre d’octets retourné de zéro ne représente pas d’écriture ayant échoué, sauf si la fonction retourne FALSE.
Un certain type de mécanisme de délai d’attente implémenté par le système ou de surveillance doit s’assurer que la fonction WritePort
retournera dans un délai raisonnable, afin d’éviter de bloquer le spouleur.
Il est acceptable qu’un moniteur de langue appelle la routine de WritePort
d’un moniteur de port en dehors d’une paire StartDocPort/EndDocPort. Toutefois, certains moniteurs de port peuvent échouer à un tel appel, de sorte que le moniteur de langue doit être écrit pour gérer cette défaillance.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | winsplp.h (include Winsplp.h) |
bibliothèque | NtosKrnl.exe |