Partilhar via


PPARALLEL_TRY_SELECT_ROUTINE função de retorno de chamada (parallel.h)

A rotina de retorno de chamada com tipo de PPARALLEL_TRY_SELECT_ROUTINEseleciona um dispositivo de cadeia de conexão IEEE 1284.3 ou um dispositivo de fim de cadeia IEEE 1284 anexado a uma porta paralela. O driver de funções fornecido pelo sistema para portas paralelas fornece essa rotina.

Sintaxe

PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;

NTSTATUS PparallelTrySelectRoutine(
  [in] PVOID TrySelectContext,
  [in] PVOID TrySelectCommand
)
{...}

Parâmetros

[in] TrySelectContext

Ponteiro para a extensão do dispositivo do objeto de dispositivo funcional de uma porta paralela (FDO).

[in] TrySelectCommand

Ponteiro para uma estrutura PARALLEL_1284_COMMAND. O chamador especifica os seguintes membros:

ID

Especifica a ID do dispositivo 1284.3.

CommandFlags

Especifica um OR bit a bit de zero ou mais dos seguintes sinalizadores:

Valor Descrição
PAR_END_OF_CHAIN_DEVICE Especifica um dispositivo de fim de cadeia.
PAR_HAVE_PORT_KEEP_PORT Especifica que o chamador tem a porta alocada e manter a porta alocada.

Valor de retorno

Código de retorno Descrição
STATUS_SUCCESS
O dispositivo foi selecionado.
STATUS_INVALID_PARAMETER
A ID do dispositivo não é válida.
STATUS_PENDING
O chamador não especificou PAR_HAVE_PORT_KEEP_PORT e a porta paralela já está alocada.
STATUS_UNSUCCESSFUL
O chamador alocou a porta paralela, mas o driver de função fornecido pelo sistema para portas paralelas não pôde selecionar o dispositivo paralelo especificado.

Observações

Para obter um ponteiro para o retorno de chamada PPARALLEL_TRY_SELECT_ROUTINE fornecido pelo sistema, um driver de modo kernel usa uma solicitação IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO, que retorna uma estrutura PARALLEL_PNP_INFORMATION. O TrySelectDevice membro da estrutura PARALLEL_PNP_INFORMATION é um ponteiro para esse retorno de chamada.

Um driver no modo kernel pode usar uma solicitação IOCTL_INTERNAL_SELECT_DEVICE ou o retorno de chamada PPARALLEL_TRY_SELECT_ROUTINE para selecionar um dispositivo paralelo em uma porta paralela. O driver de função de porta paralela enfileira uma solicitação selecionada se a porta paralela já estiver alocada. No entanto, o retorno de chamada PPARALLEL_TRY_SELECT_ROUTINE não enfileira uma solicitação selecionada e a rotina retorna imediatamente se a porta não puder ser alocada.

Observação Se um cliente usar apenas o retorno de chamada PPARALLEL_TRY_SELECT_ROUTINE para tentar selecionar um dispositivo paralelo e outros clientes estiverem disputando a porta paralela, o driver de função fornecido pelo sistema para portas paralelas poderá nunca alocar a porta para o cliente. Para garantir o êxito, um cliente deve usar uma solicitação IOCTL_INTERNAL_SELECT_DEVICE. (As filas do driver de função de porta paralela e, posteriormente, os processos, a porta alocam solicitações e solicitações de seleção de dispositivo na ordem em que as solicitações de dispositivo selecionadas são recebidas.)
 
Para obter mais informações, consulte Selecionar e desmarcar um dispositivo IEEE 1284 anexado a umParallelPort.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho parallel.h (incluir Parallel.h)
IRQL <=DISPATCH_LEVEL

Consulte também

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE