我想掛鉤鍵盤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'嘗試'\\\\。\\鍵盤'? –
它不工作。我的彙編程序不用這種方式解釋反斜槓。 –
沒有可以打開的設備,可以讓您掛接鍵盤ISR。這根本不可能不是來自用戶模式的過程,而是駕駛員需要的。然而,即使是來自驅動程序,ISR掛鉤也可以通過現代版本的Windows上的內核補丁保護來防止。在驅動程序中,您可以使用I8042prt過濾器,但請注意,這不適用USB鍵盤(它們沒有自己的專用鍵盤IRQ)。 https://msdn.microsoft.com/en-us/windows/hardware/drivers/hid/3rd-party-filter-drivers –