Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#7

Re: LptAccess-Treiber/API - Betatester gesucht.

  Alt 12. Jun 2006, 00:35
So, oben ist jetzt das Archiv aktualisiert worden.

Ich habe noch so einige kleinere und größere (auch potentielle) Fehler ausgeräumt. Die Portdaten werden jetzt im PagedPool abgelegt, was die Wahrscheinlichkeit von Allokationsproblemen herabsetzen soll. Dadurch wurde die Device Extension auch drastisch verkleinert, weil sie jetzt nur noch einen Pointer zu den Portdaten enthält. Vermutlich werde ich noch während der Beta einen IOCTL hinzufügen der es erlaubt dynamisch die Portdaten zu aktualisieren (theoretisch kann ja ein LPT von einem Bustreiber jederzeit hinzugefügt werden - ob nun simuliert oder in Hardware soll mal egal sein.

MD5 der LptAccss.sys ist c9192d47a88099101841d67df8221d64.
Die Dateiversion bei den Dateieigenschaften sollte mit 1.0.0.120 angezeigt werden.

Was mich noch interessieren würde ist, ob es Sinn machen würde, daß man einen Puffer mit mehreren Bytes über einen Registerbereich des jeweiligen Ports ausgibt? Wenn ja, kann ich diese Funktionalität noch hinzufügen. Durch diese Verzögerung, kann es noch eine Weile dauern bis ich den Usermode-Teil nun fertig habe ...
Da ich selber keine LPT-Geräte zum ansteuern habe, brauche ich da etwas "Nachhilfe"

Hinweis:
Wer die Strukturen aus IOCTL.txt schon konvertiert hatte, sollte jetzt nicht die Änderung übersehen. Ich habe noch ein Member zu LPT_INFORMATION hinzugefügt: NumParallelPorts!
Code:
// Buffer for IOCTL_LPTACCSS_QUERY_INFORMATION
typedef struct _LPT_INFORMATION
{
   ULONG         cbLength; // Versioning for this structure
   ULONG         NumParallelPorts;
   LARGE_INTEGER   OriginalController;
   PUCHAR         Controller;
   ULONG         SpanOfController;
   INTERFACE_TYPE   InterfaceType;
   ULONG         BusNumber;
   ULONG         InterruptLevel;
   ULONG         InterruptVector;
   KAFFINITY      InterruptAffinity;
   KINTERRUPT_MODE   InterruptMode;
} LPT_INFORMATION, *PLPT_INFORMATION;
Die Anzahl der unterstützen Ports ist auf 100 beschränkt, was sich aber jederzeit bei Bedarf unproblematisch erhöhen ließe (ist nur 2-stellig wegen eines Puffers, der nur 2 Stellen halten kann). Diese Ports sind die FDOs \Device\Parallel0 .. \Device\Parallel99, insofern vorhanden.

Starten/Stoppen:
Man sollte den Treiber einfach mit W2K_LOAD, einem Tool von Sven B. Schreiber, laden unt entladen können. Wenn es währenddessen zu Problemen kommt, bitte direkt per Email melden: Assarbad att gmx dott info

Syntax:
w2k_load LptAccss.sys
w2k_load LptAccss.sys /unload
  Mit Zitat antworten Zitat