Compartilhar via


Função EnumPorts

A função EnumPorts enumera as portas disponíveis para impressão em um servidor especificado.

Sintaxe

BOOL EnumPorts(
  _In_  LPTSTR  pName,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPorts,
  _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 cujas portas de impressora você deseja enumerar.

Se pName for NULL, a função enumera as portas da impressora do computador local.

Nível [in]

O tipo de informação retornada no buffer pPorts . Se Level for 1, pPorts receberá uma matriz de estruturas PORT_INFO_1 . Se Level for 2, pPorts receberá uma matriz de estruturas PORT_INFO_2 .

pPorts [out]

Um ponteiro para um buffer que recebe uma matriz de estruturas PORT_INFO_1 ou PORT_INFO_2 . Cada estrutura contém dados que descrevem uma porta de impressora disponível. O buffer deve ser grande o suficiente para armazenar as cadeias de caracteres apontadas pelos membros da estrutura.

Para determinar o tamanho do buffer necessário, chame EnumPorts com cbBuf definido como zero. EnumPorts 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 pPorts.

pcbNeeded [out]

Um ponteiro para uma variável que recebe o número de bytes copiados para o buffer pPorts . 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 de PORT_INFO_1 ou PORT_INFO_2 retornadas no buffer pPorts . Esse é o número de portas de impressora disponíveis no servidor 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 de driver de impressora que são difíceis de prever ao escrever 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.

A função EnumPorts pode ter êxito mesmo se o servidor especificado por pName não tiver uma impressora definida.

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
EnumPortsW (Unicode) e EnumPortsA (ANSI)

Confira também

Impressão

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

AddPort

DeletePort

PORT_INFO_1

PORT_INFO_2