키보드 ISR을 연결하려고하지만 CreateFile
이 0000007Bh ERROR_INVALID_NAME
을 반환하기 때문에 장치를 열 수 없습니다. 나는 무엇을 잘못 했는가?키보드 장치의 핸들을 얻는 방법은 무엇입니까?
invoke DefineDosDevice,[raw],filename1,devicename
lea rcx,[filename2]
invoke CreateFileA,rcx,GENERIC_ALL,FILE_SHARE_WRITE or
FILE_SHARE_READ,0,3,0,0
ret
section '.data' data writeable readable
devicename db '\\Device\\KeyboardClass0',0
filename1 db 'keyboard',0
filename2 db '\\.\keyboard',0
raw dq 1
처럼 뭔가를 할 수 있습니다. 'filename2 '에'\\\\. \\ keyboard'을 시도해 보셨습니까? –
작동하지 않습니다. 내 어셈블러는 그런 식으로 백 슬래시를 해석하지 않습니다. –
키보드 ISR을 연결할 수있는 장치를 열 수 없습니다. 간단히 말해서 사용자 모드 프로세스가 아니라 드라이버에서 필요로하는 것입니다. 그러나 드라이버를 사용하더라도 현대 버전의 Windows에서 커널 패치 보호를 통해 ISR 후크가 방지됩니다. 드라이버에서 I8042prt 필터를 대신 사용할 수는 있지만 USB 키보드 (자체 키보드 IRQ가없는)는 작동하지 않습니다. https://msdn.microsoft.com/en-us/windows/hardware/drivers/hid/3rd-party-filter-drivers –