Freigeben über


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
STATUS_SUCCESS
Das Gerät wurde ausgewählt.
STATUS_INVALID_PARAMETER
Die Geräte-ID ist ungültig.
STATUS_PENDING
Der Aufrufer hat nicht PAR_HAVE_PORT_KEEP_PORT 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.

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.

Hinweis Wenn ein Client nur den PPARALLEL_TRY_SELECT_ROUTINE Rückruf verwendet, um zu versuchen, ein paralleles Gerät auszuwählen, und andere Clients um den parallelen Port kämpfen, weist der vom System bereitgestellte Funktionstreiber für parallele Ports den Port möglicherweise nie dem Client zu. Um den Erfolg sicherzustellen, muss ein Client eine IOCTL_INTERNAL_SELECT_DEVICE Anforderung verwenden. (Der Parallelport-Funktionstreiber warteschlangen und verarbeitet anschließend 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 einen ParallelPort angefügt ist.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile parallel.h (einschließlich Parallel.h)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE