Compartilhar via


Considerações de programação para USBPRINT

Usbprint.sys, juntamente com o 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 idioma 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 idioma 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 renderiza um monitor de idioma incompatível com o monitor de porta paralela.

Os monitores de idioma normalmente não têm acesso a um identificador de dispositivo para a impressora que estão gerenciando. Em vez disso, eles têm um nome de porta fornecido pelo monitor de porta que fica entre o monitor de idioma e o motorista do barramento (Usbprint.sys nesse caso). Confira Interação de monitor de porta e linguagem para obter mais informações. A falta de um identificador de dispositivo impede que monitores de idioma chamem diretamente IOCTLs do driver do barramento de dispositivo. Para superar essa limitação, o USBMON implementa a API GetPrinterDataFromPort , que permite que os monitores de idioma emitam IOCTLs por meio de USBMON para USBPRINT.

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

WritePort

ReadPort

IOCTL_PAR_QUERY_DEVICE_ID

As IOCTLs a seguir 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 pipes USB.