Partilhar via


Considerações de programação para USBPRINT

Usbprint.sys, juntamente com USBMON, fornece uma interface muito semelhante à usada por impressoras paralelas. Em muitos casos, é possível que um único driver de impressora ou monitor de idioma funcione corretamente em impressoras paralelas e USB sem modificação. Se um monitor de idiomas usar apenas as funções WritePort e ReadPort e a solicitação IOCTL_PAR_QUERY_DEVICE_ID , ele será portátil entre impressoras USB e paralelas.

Em alguns casos, pode ser necessário que um monitor de idiomas faça solicitações específicas do fornecedor a uma impressora para aproveitar os recursos especiais da impressora. Para fazer isso, use IOCTL_USBPRINT_VENDOR_SET_COMMAND e IOCTL_USBPRINT_VENDOR_GET_COMMAND. Observe, no entanto, que o uso dessas IOCTLs torna um monitor de idioma incompatível com o monitor de porta paralela.

Normalmente, os monitores de idioma não têm acesso a um identificador de dispositivo para a impressora que estão gerenciando. Ao invés disso, eles têm um nome de porta fornecido pelo monitor de porta que fica entre o monitor de idioma e o driver de barramento (Usbprint.sys neste caso). Consulte Interação do monitor de idioma e porta para obter mais informações. A falta de um identificador de dispositivo impede que os monitores de linguagem chamem diretamente IOCTLs do driver de barramento do dispositivo. Para superar essa limitação, o USBMON implementa a API GetPrinterDataFromPort , que permite que monitores de idioma emitam IOCTLs através de USBMON para USBPRINT.

A pilha de impressão USB partilha as seguintes APIs e IOCTL com a pilha de impressão paralela:

WritePort

ReadPort

IOCTL_PAR_QUERY_DEVICE_ID

As seguintes IOCTLs são específicas para a pilha de impressão USB:

IOCTL_USBPRINT_GET_1284_ID

IOCTL_USBPRINT_GET_LPT_STATUS

IOCTL_USBPRINT_SOFT_RESET

IOCTL_USBPRINT_VENDOR_GET_COMMAND

IOCTL_USBPRINT_VENDOR_SET_COMMAND

Observação

Usbprint.sys não fornece um mecanismo para obter descritores do dispositivo, nem para manipular diretamente os tubos USB.