Compartilhar via


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

A rotina de retorno de chamada do tipo PPARALLEL_TRY_SELECT_ROUTINE seleciona um dispositivo de cadeia de margaridas IEEE 1284.3 ou um dispositivo de fim de cadeia IEEE 1284 anexado a uma porta paralela. O driver de função 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 de dispositivo do FDO (objeto de dispositivo funcional) de uma porta paralela.

[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 para manter a porta alocada.

Retornar valor

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.

Comentários

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 de IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO , que retorna uma estrutura PARALLEL_PNP_INFORMATION . O membro TrySelectDevice da estrutura PARALLEL_PNP_INFORMATION é um ponteiro para esse retorno de chamada.

Um driver de modo kernel pode usar uma solicitação de 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 de seleção se a porta paralela já estiver alocada. No entanto, o retorno de chamada PPARALLEL_TRY_SELECT_ROUTINE não enfileira uma solicitação de seleção e a rotina retornará imediatamente se a porta não puder ser alocada.

Nota Se um cliente usar apenas o PPARALLEL_TRY_SELECT_ROUTINE retorno de chamada 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 de driver de função de porta paralela e, posteriormente, processos, solicitações de alocação de porta 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 um ParallelPort.

Requisitos

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

Confira 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