is it possible to create a Windows Device Driver with Lazarus lazarus / 34-Windows ---------------------------------------------------------------------- andyf97 · 2023-06-08 22:04 is it possible to create a Windows Device Driver with Lazarus so that it would show up in device manager. Something really basic that acts as a midi key receiver and save to a file. Common audio sequencer applications like Cubase can write to midi devices, I want my own to be able to expand it.. ---------------------------------------------------------------------- Seenkao · 2023-06-09 09:17 Да, с помощью FPC/Lazarus можно написать драйвер. Но для этого вам нужен опыт в создании драйверов. Или хотя бы сильное желание создать драйвер. Вам надо изучить как создаются драйвера и попробовать самому их создать с помощью FPC/Lazarus. Google translate: Yes, you can write a driver using FPC/Lazarus. But for this you need experience in creating drivers. Or at least a strong desire to create a driver. You should learn how drivers are created and try to create them yourself using FPC/Lazarus. ---------------------------------------------------------------------- Leledumbo · 2023-06-09 17:49 Please read: https://wiki.lazarus.freepascal.org/Target_NativeNT ---------------------------------------------------------------------- PascalDragon · 2023-06-09 20:04 Please note that target nativent currently does only support i386, but not x86_64 or aarch64. Though at least in principle it shouldn't be that hard to port... ---------------------------------------------------------------------- Thaddy · 2023-06-10 10:58 of course for the 64 bit drivers there is the little matter that they need to be codesigned. That costs money to buy a signing certificate from a Microsoft approved certificate provider. But once you buy it, you can use it for anything. Costs between $75-$125 a year. Once signed, a particular driver is never affected if the certificate should expire, though, unless you want to update a particular driver. Then it needs to be signed again with a valid codesign certificate. 32 bit drivers are only partially affected because on a win64 system 32 bit stuff runs in a kind of virtual machine called windows on windows or SysWoW. ---------------------------------------------------------------------- PascalDragon · 2023-06-10 11:23 Quote from: Thaddy on June 10, 2023, 12:58:57 pm32 bit drivers are only partially affected because on a win64 system 32 bit stuff runs in a kind of virtual machine called windows on windows or SysWoW. You can not run 32-bit drivers on 64-bit systems. The 32-bit mode is not available in kernel mode. ---------------------------------------------------------------------- Thaddy · 2023-06-10 11:30 Quote from: PascalDragon on June 10, 2023, 01:23:34 pmYou can not run 32-bit drivers on 64-bit systems. The 32-bit mode is not available in kernel mode. I did not know that. - although my midi drivers and ASIO drivers are for sure 32 bit! In that case he can simply use a service/daemon in that case, same as i wrote for ASIO. But e.g. ASIOForAll is 32 bit, a driver and 32 bit. ---------------------------------------------------------------------- marcov · 2023-06-10 11:46 Quote from: Thaddy on June 10, 2023, 01:30:03 pmQuote from: PascalDragon on June 10, 2023, 01:23:34 pmYou can not run 32-bit drivers on 64-bit systems. The 32-bit mode is not available in kernel mode. I did not know that. - although my midi drivers and ASIO drivers are for sure 32 bit! In that case he can simply use a service/daemon in that case, same as i wrote for ASIO. But e.g. ASIOForAll is 32 bit, a driver and 32 bit. Usually those are services that hook generic filter drivers, and don't live in kernel space This also happens with e.g. industrial cameras. ---------------------------------------------------------------------- TRon · 2023-06-10 11:49 Quote from: marcov on June 10, 2023, 01:46:17 pmUsually those are services that hook generic filter drivers, and don't live in kernel space This also happens with e.g. industrial cameras. AS far as I know that is what thunking is used for ?