PPARALLEL_TRY_SELECT_ROUTINE Rückruffunktion (parallel.h)
Die PPARALLEL_TRY_SELECT_ROUTINE typisierte Rückrufroutine wählt ein IEEE 1284.3-Daisy-Chain-Gerät oder ein IEEE 1284-End-of-Chain-Gerät aus, das an einen parallelen Port angeschlossen ist. Der vom System bereitgestellte Funktionstreiber für parallele Ports stellt diese Routine bereit.
Syntax
PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;
NTSTATUS PparallelTrySelectRoutine(
[in] PVOID TrySelectContext,
[in] PVOID TrySelectCommand
)
{...}
Parameter
[in] TrySelectContext
Zeiger auf die Geräteerweiterung des funktionalen Geräteobjekts (Functional Device Object, FDO) eines parallelen Ports.
[in] TrySelectCommand
Zeiger auf eine PARALLEL_1284_COMMAND-Struktur . Der Aufrufer gibt die folgenden Member an:
ID
Gibt die Geräte-ID 1284.3 an.
CommandFlags
Gibt einen bitweisen OR mit 0 oder mehr der folgenden Flags an:
Wert | BESCHREIBUNG |
---|---|
PAR_END_OF_CHAIN_DEVICE | Gibt ein End-of-Chain-Gerät an. |
PAR_HAVE_PORT_KEEP_PORT | Gibt an, dass dem Aufrufer der Port zugewiesen ist und der Port zugewiesen bleibt. |
Rückgabewert
Rückgabecode | Beschreibung |
---|---|
|
Das Gerät wurde ausgewählt. |
|
Die Geräte-ID ist ungültig. |
|
Der Aufrufer hat nicht PAR_HAVE_PORT_KEEP_PORT angegeben, und der parallele Port ist bereits zugeordnet. |
|
Der Aufrufer hat den parallelen Port zugewiesen, aber der vom System bereitgestellte Funktionstreiber für parallele Ports konnte das angegebene parallele Gerät nicht auswählen. |
Hinweise
Um einen Zeiger auf den vom System bereitgestellten PPARALLEL_TRY_SELECT_ROUTINE Rückruf abzurufen, verwendet ein Kernelmodustreiber eine IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO Anforderung, die eine PARALLEL_PNP_INFORMATION-Struktur zurückgibt. Das TrySelectDevice-Element der PARALLEL_PNP_INFORMATION-Struktur ist ein Zeiger auf diesen Rückruf.
Ein Kernelmodustreiber kann eine IOCTL_INTERNAL_SELECT_DEVICE-Anforderung oder den PPARALLEL_TRY_SELECT_ROUTINE Rückruf verwenden, um ein paralleles Gerät an einem parallelen Port auszuwählen. Der Parallelportfunktionstreiber stellt eine Select-Anforderung in die Warteschlange, wenn der parallele Port bereits zugeordnet ist. Der PPARALLEL_TRY_SELECT_ROUTINE Rückrufs führt jedoch keine Warteschlange für eine Auswahlanforderung aus, und die Routine wird sofort zurückgegeben, wenn der Port nicht zugewiesen werden kann.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | parallel.h (einschließlich Parallel.h) |
IRQL | <=DISPATCH_LEVEL |
Weitere Informationen
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO