Newsgroup: it.comp.programmare.win32
Titolo: Sviluppo driver per device connesso alla parallela

Ho sviluppato un driver monolitico per Windows 2000 che gestisce una
comunicazione sulla parallela utilizzando tutte e 3 le porte (CTRL, STAT,
DATA) relative.
Le cose cambiano con Windows XP: installando il driver le comunicazioni del
mio driver vengono disturbate da attività autonoma del driver fornito dalla
Microsoft parport.sys. Dopo una decina di sessioni di comunicazione
interrotte (o giù di lì) parport.sys smette di disturbare e tutto funziona
regolarmente.
Il disturbo di parport.sys consiste (sicuramente anche) in una scrittura nel
registro CTRL della parallela che avviene a cadenza di qualche decina di
secondi, intercettato con il debugger.
Il driver non è WDM e non viene installato con un inf. Una applicazione
provvede alla installazione che si limita a copiare il .sys ed a settare i
registri opportuni per il servizio.
Come posso impedire al  parport.sys di disturbare la comunicazione?
Avete qualche suggerimento?
Dovrei forse inserire correttamente il mio driver nella catena dei driver di
gestione porta parallela?
Grazie
    Denis

 gestione porta parallela?
non sviluppo driver x windows.. però quello che ti posso dire è che x XP
esiste un ddk
appropriato... quindi magari c'è qualche passaggio che il tuo driver non fa
e il disturbo
ne è una conseguenza (oltre al fatto di non essere installato come vuole il
sistema)
antonio

 Come posso impedire al parport.sys di disturbare la comunicazione?
dovresti scrivere un driver WDM PnP per integrarti con il meccanismo di 
assegnazione delle risorse hardware, e poter dire che la certa porta di 
I/O č usata dal tuo driver
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.3. C, C++ and ASM developers
                               and beta testers are welcome!

 I/O è usata dal tuo driver
Ora sto utilizzando il DDK per XP. Questo è l'unico driver che ho scritto ed
ho trovato la cosa piuttosto impegnativa.
Mi stai dicendo che dovrò seguire scrupolosamente le direttive della
documentazione DDK? Ho cercato di evitarlo perchè c'è veramente molta roba.
Alcuni concetti non mi risultano chiari e dalla documentazione del DDK non
riesco a capire:
1) Credo che per un lock della porta parallela devo prima costruire un IRP
con la funzione IoBuildDeviceIoControlRequest ed inserire il servizio
opportuno (IOCTL_INTERNAL_LOCK_PORT ?), poi chiamare IoCallDriver con
quell'IRP. IoCallDriver richiede un puntatore al device object e credo il
driver relativo debba far parte del driver stack della parport. Se questo è
corretto nasce la domanda 2.
2) Come faccio ad inserire il mio driver sul driver stack della parport?
Credo che la cosa dovrebbe avvenire al momento della installazione del
dispositivo che però non ha supporto hardware PnP.
3) Potrebbe esiste una strada alternativa mantenedo il driver monolitico? In
fondo parport.sys, (dopo un pò di tentativi) si convince che non è il caso
di inistere e lascia il mio driver in pace. Temo che questo sia una speranza
vana.
Sto aspettando che mi arrivi "Programming the Microsoft Windows Driver
Model, Second Edition" di Walter Oney.
Lo conosci? Hai altri suggerimenti?
ciao
    Denis