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 |
---|---|
|
L’appareil a été sélectionné. |
|
L’ID d’appareil n’est pas valide. |
|
L’appelant n’a pas spécifié PAR_HAVE_PORT_KEEP_PORT et le port parallèle est déjà alloué. |
|
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é.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | parallel.h (include Parallel.h) |
IRQL | <=DISPATCH_LEVEL |
Voir aussi
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO