Partager via


PPARALLEL_TRY_SELECT_ROUTINE fonction de rappel (parallel.h)

La routine de rappel PPARALLEL_TRY_SELECT_ROUTINE-typée sélectionne un appareil de chaîne ieee 1284.3 daisy ou un appareil de fin de chaîne IEEE 1284 attaché à un port parallèle. Le pilote de fonction fourni par le système pour les ports parallèles fournit cette routine.

Syntaxe

PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;

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

Paramètres

[in] TrySelectContext

Pointeur vers l’extension d’appareil d’un port parallèle (FDO).

[in] TrySelectCommand

Pointeur vers une structure PARALLEL_1284_COMMAND. L’appelant spécifie les membres suivants :

ID

Spécifie l’ID d’appareil 1284.3.

CommandFlags

Spécifie un OR au niveau du bit de zéro ou plusieurs des indicateurs suivants :

Valeur Description
PAR_END_OF_CHAIN_DEVICE Spécifie un appareil de bout en bout.
PAR_HAVE_PORT_KEEP_PORT Spécifie que l’appelant dispose du port alloué et qu’il conserve le port alloué.

Valeur de retour

Retourner le code Description
STATUS_SUCCESS
L’appareil a été sélectionné.
STATUS_INVALID_PARAMETER
L’ID d’appareil n’est pas valide.
STATUS_PENDING
L’appelant n’a pas spécifié PAR_HAVE_PORT_KEEP_PORT et le port parallèle est déjà alloué.
STATUS_UNSUCCESSFUL
L’appelant a alloué le port parallèle, mais le pilote de fonction fourni par le système pour les ports parallèles n’a pas pu sélectionner le périphérique parallèle spécifié.

Remarques

Pour obtenir un pointeur vers le rappel PPARALLEL_TRY_SELECT_ROUTINE fourni par le système, un pilote en mode noyau utilise une requête IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO, qui retourne une structure PARALLEL_PNP_INFORMATION. Le TrySelectDevice membre de la structure PARALLEL_PNP_INFORMATION est un pointeur vers ce rappel.

Un pilote en mode noyau peut utiliser une demande de IOCTL_INTERNAL_SELECT_DEVICE ou le rappel PPARALLEL_TRY_SELECT_ROUTINE pour sélectionner un appareil parallèle sur un port parallèle. Le pilote de fonction de port parallèle met en file d’attente une demande de sélection si le port parallèle est déjà alloué. Toutefois, le rappel PPARALLEL_TRY_SELECT_ROUTINE ne met pas en file d’attente une demande de sélection et la routine retourne immédiatement si le port ne peut pas être alloué.

Remarque Si un client utilise uniquement le rappel PPARALLEL_TRY_SELECT_ROUTINE pour tenter de sélectionner un appareil parallèle et que d’autres clients sont en concurrence pour le port parallèle, le pilote de fonction fourni par le système pour les ports parallèles peut ne jamais allouer le port au client. Pour garantir la réussite, un client doit utiliser une demande de IOCTL_INTERNAL_SELECT_DEVICE. (Les files d’attente du pilote de fonction de port parallèle, puis les processus, l’allocation de ports et les demandes de sélection d’appareils dans l’ordre dans lequel les demandes de sélection d’appareils sont reçues.)
 
Pour plus d’informations, consultez Sélection et désélectionnement d’un appareil IEEE 1284 attaché à unParallelPort .

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête parallel.h (include Parallel.h)
IRQL <=DISPATCH_LEVEL

Voir aussi

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE