PDA

View Full Version : Istruzioni in Kernel Mode in Windows


fuku san
16-04-2004, 18:25
Per poter usare istruzioni privilegiate sotto windows,cioè che possano essere eseguite solo in kernel mode,devo per forza inserirle in una dll? ad esempio se dovessi scrivere un driver che usa istruzioni di I/O (quindi le istruzioni IN e OUT in assembly 80x86 che sono privilegiate) l'unico modo è creare una dll e non un eseguibile ?

cionci
16-04-2004, 18:59
Non un dll, ma un driver...
Quindi un .VXD per Win9x o un .SYS per WinNT/2k/xp

fuku san
16-04-2004, 20:23
però i driver contenuti in c:\windows\system32 di windows 98 sono tutti .sys , mentre i .vxd sono quelli vecchi,ci sono solo su win95 e precedenti,credo,perchè in win98 non ce n'è nemmeno uno di vxd

comunque tornando al discorso di prima,io non posso dire al compilatore di creare un .sys.........quindi forse devo creare una dll e poi cambiare l'estensione a mano e poi windows lo riconosce automaticamente come driver quando viene linkata dinamicamente?

cionci
16-04-2004, 20:28
Mi sembra che anche 98 e Me supportino i driver vxd...comuqnue non è questo il punto...
Devi scaricare il Driver Developer Kit dal sito M$...

fuku san
16-04-2004, 21:00
ok,il DDK mi serve per creare i driver .sys

ma se io voglio non creare un driver,ma solo usare un'istruzione privilegiata tipo questa

IN ax,3DAh ;legge lo stato del monitor VGA

devo per forza metterla in un driver .vxd o .sys? se la metto in un dll windows mi da operazione non valida?

cionci
16-04-2004, 21:11
Non sei in kernel mode e quindi non puoi fare alcuna istruzione di IN e di OUT...

fuku san
16-04-2004, 21:27
grazie e scusa il disturbo,ti ricambierò in qlc modo

leon84
16-04-2004, 22:06
scusate se mi intrometto ... Come si fa a passare in kernel mode ?

cionci
16-04-2004, 22:28
Si scrive un driver ;)

leon84
17-04-2004, 08:50
Per scrivere un driver occorre programmare in assembler ?

cionci
17-04-2004, 08:54
Non è detto...dipende dal tipo di driver... Se è und river che deve accedere all'hardware spesso è necessario...

fuku san
17-04-2004, 18:12
Ma un driver deve sicuramente accedere all'hardware,per definizione,mi faresti un esempio di driver che non accede alle porte di I/O?

cionci
17-04-2004, 19:22
Non è vero che un driver accede per definizione all'hardware...
Ad esempio...il driver del protocollo TCP/IP non accede direttamente all'hardware...
Altro esempio "driver connessione automatica di Accesso Remoto"...anche questo non accede all'hardware...