Condividi tramite


PPARALLEL_TRY_SELECT_ROUTINE funzione di callback (parallel.h)

La routine di callback tipizzata PPARALLEL_TRY_SELECT_ROUTINEseleziona un dispositivo con catena di dati IEEE 1284.3 o un dispositivo di fine catena IEEE 1284 collegato a una porta parallela. Il driver di funzione fornito dal sistema per le porte parallele fornisce questa routine.

Sintassi

PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;

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

Parametri

[in] TrySelectContext

Puntatore all'estensione del dispositivo dell'oggetto dispositivo funzionale di una porta parallela (FDO).

[in] TrySelectCommand

Puntatore a una struttura PARALLEL_1284_COMMAND. Il chiamante specifica i membri seguenti:

ID

Specifica l'ID dispositivo 1284.3.

CommandFlags

Specifica un OR bit per bit pari a zero o più dei flag seguenti:

Valore Descrizione
PAR_END_OF_CHAIN_DEVICE Specifica un dispositivo end-of-chain.
PAR_HAVE_PORT_KEEP_PORT Specifica che il chiamante ha la porta allocata e per mantenere allocata la porta.

Valore restituito

Codice restituito Descrizione
STATUS_SUCCESS
Il dispositivo è stato selezionato.
STATUS_INVALID_PARAMETER
L'ID dispositivo non è valido.
STATUS_PENDING
Il chiamante non ha specificato PAR_HAVE_PORT_KEEP_PORT e la porta parallela è già allocata.
STATUS_UNSUCCESSFUL
Il chiamante ha allocato la porta parallela, ma il driver di funzione fornito dal sistema per le porte parallele non è riuscito a selezionare il dispositivo parallelo specificato.

Osservazioni

Per ottenere un puntatore al callback fornito dal sistema PPARALLEL_TRY_SELECT_ROUTINE, un driver in modalità kernel usa una richiesta di IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO, che restituisce una struttura PARALLEL_PNP_INFORMATION. Il TrySelectDevice membro della struttura PARALLEL_PNP_INFORMATION è un puntatore a questo callback.

Un driver in modalità kernel può usare una richiesta di IOCTL_INTERNAL_SELECT_DEVICE o il callback PPARALLEL_TRY_SELECT_ROUTINE per selezionare un dispositivo parallelo su una porta parallela. Il driver della funzione di porta parallela accoda una richiesta di selezione se la porta parallela è già allocata. Tuttavia, il callback PPARALLEL_TRY_SELECT_ROUTINE non accoda una richiesta di selezione e la routine restituisce immediatamente se la porta non può essere allocata.

Nota Se un client usa solo il callback PPARALLEL_TRY_SELECT_ROUTINE per tentare di selezionare un dispositivo parallelo e altri client stanno lottando per la porta parallela, il driver di funzione fornito dal sistema per le porte parallele potrebbe non allocare mai la porta al client. Per garantire l'esito positivo, un client deve usare una richiesta di IOCTL_INTERNAL_SELECT_DEVICE. Le code del driver della funzione di porta parallela e successivamente elaborano le richieste di allocazione delle porte e le richieste di selezione del dispositivo nell'ordine in cui vengono ricevute le richieste di dispositivo.
 
Per altre informazioni, vedere Selezione e selezione di un dispositivo IEEE 1284 collegato a unParallelPort.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione parallel.h (include Parallel.h)
IRQL <=DISPATCH_LEVEL

Vedere anche

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE