Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der LPT-Enumerator ist ein Beispiel für einen Bustreiber. Der LPT-Enumerator kann Identifikationsinformationen von LPT-Porthardware abrufen, die dem IEEE 1284 Extended Capabilities Port Protocol und dem ISA-Schnittstellenstandard entspricht.
Wenn ein Windows 2000- oder höher-System gestartet wird, ruft der Konfigurations-Manager den LPT-Enumerator auf, um die IEEE 1284-kompatiblen Geräte aufzulisten, die mit LPT-Ports verbunden sind. Für jedes gefundene Gerät ruft der Konfigurations-Manager das Druckerklasseninstallationsprogramm auf. Das Druckerklasseninstallationsprogramm ruft SetupDi-präfixierte Geräteinstallationsfunktionen auf, die Informationen aus Drucker-INF-Dateien abrufen.
Für einen parallel verbundenen Drucker erstellt der parallele Enumerator einen Devnode mit einer eindeutigen Hardware-ID , die aus der Zeichenfolge 1284 generiert wird, die er vom Drucker empfängt.
Eine Beispielzeichenfolge mit 1284 ist:
"MANUFACTURER:Hewlett-Packard;COMMAND SET:PJL,MLC,PCL,POSTSCRIPT;MODEL:HP Color LaserJet 550;CLASS:PRINTER;COMMENT:HP LaserJet;"
Aus dieser Zeichenfolge 1284 erzeugt der parallele Enumerator die folgende Hardware-ID:
LPTENUM\Hewlett-PackardHP_Co3115
Die Hardware-ID besteht aus dem Enumeratorpräfix, gefolgt vom Herstellernamen, dem Modellnamen und einem CRC-Code (cyclic Redundanzprüfung). Der CRC-Code, bei dem es sich um die letzten vier Ziffern der Hardware-ID handelt, wird von den Hersteller- und Modellzeichenfolgen generiert. Leerzeichen in der Zeichenfolge werden durch Unterstriche ersetzt.
Um die Zeichenfolge 1284 ID vom Gerät zu lesen, senden Sie IOCTL_PAR_QUERY_DEVICE_ID. Beachten Sie, dass der Spooler den symbolischen LPTx-Link (wobei x die LPT-Nummer 1, 2 oder 3 ist) an die benannte Pipe des Spoolers umleitet. Dies bedeutet, dass Parport die an LPTx gesendeten IOCTLs nie sieht, wenn der Spooler ausgeführt wird.
Der Devnode für einen parallel verbundenen Plug & Play-Drucker befindet sich unter HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM und weist eine einzelne Hardware-ID der Form auf:
LPTENUM\Company_NameModelNam1234
Der Treiberstapel wird in der Abbildung nach dem nächsten Codebeispiel angezeigt.
Der INF-Code, mit dem eine Hardware-ID der Form LPTENUM\Company_NameModelNam1234 ordnungsgemäß "plug and play" ausgeführt wird, wird im folgenden Beispiel gezeigt. Beachten Sie, dass die Gerätebeschreibung "Modellname XYZ" zweimal im Abschnitt INF-Hersteller angezeigt wird. Die Hardware-ID in der ersten Zeile enthält den Bus-Enumerator, während die Hardware-ID in der zweiten Zeile dies nicht tut. Die beiden Zeilen garantieren eine Übereinstimmung mit der Hardware-ID "Rang 0", unabhängig vom Typ des Busses, auf dem der Drucker installiert ist. Weitere Informationen finden Sie unter Installieren eines benutzerdefinierten Plug & Play Druckertreibers.
[Manufacturer]
%Company_Name%=Company_Name
; Section name for all drivers for Company_Name
[Company_Name]
"Model Name XYZ" = Install_Section_XYZ, LPTENUM\Company_NameModelNam1234 ; plus any compatible IDs
"Model Name XYZ" = Install_Section_XYZ, Company_NameModelNam1234 ; plus any compatible IDs
; The install section for the XYZ model
[Install_Section_XYZ]
[Strings]
Company_Name="Company Name"
Für einen Drucker, der seine Geräte-ID mit anderen Modellen teilt, sollte die INF-Datei wie folgt aussehen:
[Manufacturer]
%Company_Name%=Company_Name
; The section for all drivers for Company_Name
[Company_Name]
"Model Name XYA" = Install_Section_XYA, LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs
"Model Name XYA" = Install_Section_XYA, Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs
"Model Name XYB" = Install_Section_XYB, LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234; plus any other compatible IDs
"Model Name XYB" = Install_Section_XYB, Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs
; The install sections
[Install_Section_XYA]
[Install_Section_XYB]
[ControlFlags]
InteractiveInstall = LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234
[Strings]
Company_Name = "Company Name"
Genau wie im vorherigen Beispiel wird jedes Modell im Abschnitt INF-Hersteller durch ein Paar fast identischer Linien dargestellt. Für ein bestimmtes Modell enthält eine Zeile im Paar den Bus-Enumerator. der andere nicht. Die beiden Zeilen garantieren eine Übereinstimmung mit der Hardware-ID "Rang 0", unabhängig vom Typ des Busses, auf dem der Drucker installiert ist. Weitere Informationen finden Sie unter Installieren eines benutzerdefinierten Plug & Play Druckertreibers.