Auswählen und Deaktivieren eines IEEE 1284-Geräts, das an einen parallelen Port angeschlossen ist
Ein Client kann ein IEEE 1284.3-Gerät, das an einen parallelen Port angefügt ist, mithilfe der folgenden internen Gerätesteuerungsanforderungen auswählen und deaktivieren:
IOCTL_INTERNAL_DESELECT_DEVICE
Ein Kernelmodustreiber kann auch die vom System bereitgestellten parallelen Geräterückrufroutinen verwenden, die mithilfe einer IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO-Anforderung abgerufen werden. Diese Anforderung gibt eine PARALLEL_PNP_INFORMATION-Struktur zurück, die die folgenden Zeiger auf vom System bereitgestellte Rückrufe enthält:
Das TrySelectDevice-Element ist ein Zeiger auf einen PPARALLEL_TRY_SELECT_ROUTINE Rückruf, der die Auswahl eines IEEE 1284.3-Daisy-Chain-Geräts oder eines IEEE 1284-End-of-Chain-Geräts, das an einen parallelen Port angeschlossen ist, deaktiviert.
Das DeselectDevice-Element ist ein Zeiger auf einen PPARALLEL_DESELECT_ROUTINE Rückruf, der ein IEEE 1284.3-Daisy-Chain-Gerät oder ein IEEE 1284-End-of-Chain-Gerät auswählt, das an einen parallelen Port angeschlossen ist.
Die Select-Anforderungen erfordern die geringste Verarbeitung durch den Client, da der vom System bereitgestellte Funktionstreiber für parallele Ports die Auswahlanforderung für den Client in die Warteschlange stellt, wenn der parallele Port von einem anderen Client zugewiesen wird. Nachdem der Parallelportfunktionstreiber die Select-Anforderung entfernt hat, versucht er, den Port zuzuweisen und das IEEE 1284.3-Gerät auszuwählen. Der Client kann eine Auswahlanforderung aufgrund einer akzeptablen Timeoutverzögerung oder einer anderen gerätespezifischen Bedingung jederzeit abbrechen.
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.)
Nachdem der Funktionstreiber für parallelen Port ein IEEE 1284.3-Gerät für einen Client ausgewählt hat, hat der Client exklusiven Zugriff auf den Port und das ausgewählte IEEE 1284.3-Gerät. Der Client muss den PPARALLEL_DESELECT_ROUTINE Rückruf aufrufen, um den Port frei zu machen und die Auswahl des IEEE 1284.3-Geräts aufzuheben. Nachdem ein Client den Port freigegeben hat, löst der Parallelportfunktionstreiber eine ausstehende Anforderung (falls vorhanden) aus und verarbeitet die Anforderung.
Microsoft Windows 2000 unterstützt vier Daisy Chain-Geräte pro Port. Microsoft empfiehlt jedoch die Verwendung von maximal zwei Daisy Chain-Geräten pro Port. Windows XP unterstützt maximal zwei Daisy Chain-Geräte pro Port.