Compartilhar via


Função EnumPrinterDrivers

A função EnumPrinterDrivers enumera os drivers de impressora instalados em um servidor de impressora especificado.

Sintaxe

BOOL EnumPrinterDrivers(
  _In_  LPTSTR  pName,
  _In_  LPTSTR  pEnvironment,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pDriverInfo,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

Parâmetros

pName [in]

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome do servidor no qual os drivers de impressora são enumerados.

Se pName for NULL, a função enumera os drivers de impressora locais.

pEnvironment [in]

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o ambiente (por exemplo, Windows x86, Windows IA64, Windows x64 ou Windows NT R4000). Se esse parâmetro for NULL, a função usará o ambiente atual do chamador/cliente (não do destino/servidor).

Se a cadeia de caracteres pEnvironment especificar "todos", EnumPrinterDrivers enumerará drivers de impressora para todas as plataformas instaladas no servidor especificado.

Nível [in]

O tipo de estrutura de informações retornado no buffer pDriverInfo . Pode ser um dos seguintes.

Valor Significado
1
DRIVER_INFO_1
2
DRIVER_INFO_2
3
DRIVER_INFO_3
4
DRIVER_INFO_4
5
DRIVER_INFO_5
6
DRIVER_INFO_6
8
DRIVER_INFO_8

pDriverInfo [out]

Um ponteiro para um buffer que recebe uma matriz de estruturas DRIVER_INFO_*, conforme especificado por Level. Cada estrutura contém dados que descrevem um driver de impressora disponível. O buffer deve ser grande o suficiente para receber a matriz de estruturas e quaisquer cadeias de caracteres ou outros dados aos quais os membros da estrutura apontam.

Para determinar o tamanho do buffer necessário, chame EnumPrinterDrivers com cbBuf definido como zero. EnumPrinterDrivers falha, GetLastError retorna ERROR_INSUFFICIENT_BUFFER e o parâmetro pcbNeeded retorna o tamanho, em bytes, do buffer necessário para manter a matriz de estruturas e seus dados.

cbBuf [in]

O tamanho, em bytes, do buffer apontado por pDriverInfo

pcbNeeded [out]

Um ponteiro para uma variável que recebe o número de bytes copiados para o buffer pDriverInfo se a função for bem-sucedida. Se o buffer for muito pequeno, a função falhará e a variável receberá o número de bytes necessários.

pcReturned [out]

Um ponteiro para uma variável que recebe o número de estruturas retornadas no buffer pDriverInfo . Esse é o número de drivers de impressora instalados no servidor de impressão especificado.

Valor retornado

Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.

Se a função falhar, o valor retornado será zero.

Comentários

Observação

Essa é uma função de bloqueio ou síncrona e pode não retornar imediatamente. A rapidez com que essa função retorna depende de fatores de tempo de execução, como status de rede, configuração do servidor de impressão e fatores de implementação do driver de impressora que são difíceis de prever ao gravar um aplicativo. Chamar essa função de um thread que gerencia a interação com a interface do usuário pode fazer com que o aplicativo pareça não responder.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winspool.h (inclua Windows.h)
Biblioteca
Winspool.lib
DLL
Winspool.drv
Nomes Unicode e ANSI
EnumPrinterDriversW (Unicode) e EnumPrinterDriversA (ANSI)

Confira também

Impressão

Funções da API do Spooler de impressão

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

GetPrinterDriver