打印打印作业
打开端口后(如 打开和关闭端口中所述),后台处理程序可以将打印作业发送到端口。
每个打印作业由后台处理程序调用语言或端口监视器的 StartDocPort 和 EndDocPort 函数分隔。 当打印处理器调用后台处理程序的 StartDocPrinter 和 EndDocPrinter 函数时,后台 处理程序 会调用这些函数。
在一组 StartDocPort 和 EndDocPort 函数的范围内,可以无限制地调用监视器的 WritePort、 ReadPort 和 GetPrinterDataFromPort 函数。
其中每个函数都要求 OpenPortEx (或 OpenPort) 返回的端口句柄在 input 参数中指定为 。 通常,语言监视器通过在其关联的端口监视器中调用命名相同的函数来实现每个函数。
当后台处理程序调用语言监视器的 WritePort 函数以将数据流发送到端口时,该函数通常会在将特定于语言的信息(如 PJL 命令)添加到收到的数据流,然后再将其传递给关联的端口监视器的 WritePort 函数。
ReadPort 函数用于从双向打印机硬件获取状态信息,语言监视器可以通过调用 SetPort 将这些硬件发送到后台处理程序。 后台处理程序不调用 ReadPort 函数。
如果打印硬件是双向的,则其语言监视器和端口监视器都应支持 GetPrinterDataFromPort 函数。 语言监视器的 GetPrinterDataFromPort 函数应接受注册表值名称作为输入,通常通过) 调用关联端口监视器的 WritePort 和 ReadPort 函数来获取该 (名称的值,并将该值返回给调用方。 端口监视器的 GetPrinterDataFromPort 函数应接受 I/O 控制代码作为输入,调用 DeviceIoControl 将控制代码传递给端口驱动程序,并返回结果。