Freigeben über


PPARALLEL_TRY_SELECT_ROUTINE Rückruffunktion (parallel.h)

Die PPARALLEL_TRY_SELECT_ROUTINE-typierte Rückrufroutine wählt ein IEEE 1284.3-Daisy-Kettengerä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 liefert diese Routine.

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 eines parallelen Ports (FDO-).

[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 ein bitweises ODER von Null 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 Anrufer der Port zugewiesen ist und der Port zugewiesen bleibt.

Rückgabewert

Rückgabecode Beschreibung
STATUS_SUCCESS
Das Gerät wurde ausgewählt.
STATUS_INVALID_PARAMETER
Die Geräte-ID ist ungültig.
STATUS_PENDING
Der Aufrufer hat PAR_HAVE_PORT_KEEP_PORT nicht angegeben, und der parallele Port ist bereits zugeordnet.
STATUS_UNSUCCESSFUL
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.

Bemerkungen

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. Der TrySelectDevice Member 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 auf einem parallelen Port auszuwählen. Der Parallelport-Funktionstreiber stellt eine Auswahlanforderung in die Warteschlange, wenn der parallele Port bereits zugeordnet ist. Der PPARALLEL_TRY_SELECT_ROUTINE Rückruf stellt jedoch keine Auswahlanforderung in die Warteschlange und die Routine wird sofort zurückgegeben, wenn der Port nicht zugewiesen werden kann.

Hinweis Wenn ein Client nur den PPARALLEL_TRY_SELECT_ROUTINE Rückruf verwendet, um ein paralleles Gerät auszuwählen, und andere Clients für den parallelen Port kämpfen, kann der vom System bereitgestellte Funktionstreiber für parallele Ports den Port niemals dem Client zuordnen. Um den Erfolg sicherzustellen, muss ein Client eine IOCTL_INTERNAL_SELECT_DEVICE Anforderung verwenden. (Die Parallelport-Funktionstreiberwarteschlangen und anschließende Prozesse, Portzuweisungsanforderungen und Geräteauswahlanforderungen in der Reihenfolge, in der ausgewählte Geräteanforderungen empfangen werden.)
 
Weitere Informationen finden Sie unter Auswählen und Deaktivieren eines IEEE 1284-Geräts, das an ein ParallelPort-angeschlossen ist.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- parallel.h (include Parallel.h)
IRQL- <=DISPATCH_LEVEL

Siehe auch

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE