Erro ao imprimir de aplicativos de 16 bits no Windows 2008 Server

Erro ao imprimir de aplicativos de 16 bits no Windows 2008 Server

Estou tendo problemas ao tentar executar vários aplicativos antigos de 16 bits no Windows 2008 Server. Os aplicativos funcionaram bem até o Windows 2003 Server, mas quando tento imprimir de qualquer um deles, todos mostram erros de impressão (Não foi possível criar o driver da impressora/erro TERM/etc)

  • A porta LPT1 é redirecionada para uma impressora compartilhada via NET USE LPT1 \ServerName\SharedPrinter
  • DIR > LPT1 (ou qualquer redirecionamento de shell para a impressora) está funcionando bem.
  • Estou usando uma conta de administrador, então não deve ser um problema de permissão, certo?

Para reproduzir o comportamento, fiz um pequeno programa de teste em C (TCC 1.01 para DOS). Funciona bem no XP / 2003 Server, mas no 2008 Server mostra a abertura do identificador (5), mas quando está tentando escrever nesse identificador, emite um erro (Erro de gravação no dispositivo de gravação LPT1, Abortar, Tentar novamente, Ignorar, Falha)

#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>

int main(void)
{
 int handle, status;
 char* sbuff;

 handle = open("LPT1", O_WRONLY, S_IFBLK);
 printf("%d\n", handle);

 if (!handle)
 {
    printf("open failed\n");
    exit(1);
 }

 sbuff = "[print test]\n";
 write(handle, sbuff, strlen(sbuff));

 close(handle);
 getch();

 return 0;
}

Alguma pista?

TIA, Pablo

Responder1

Eu pensoeste tópicoresolve seu problema. O passo principal é usar o pool de impressoras em vez do uso da rede.

2) Abra as propriedades da impressora (no Vista, abra como Administrador)

3) Ative o "pooling de impressoras" (na guia Portas)

4) Além do que já estiver selecionado (por exemplo, USB), selecione também "LPT1:"

5) Clique em aplicar

informação relacionada