0 water, 100% short and useful information. Thanks!
@badtrip858 Жыл бұрын
It is almost comical that when searching for a video about Windows Drivers' Development so far, I was only getting results from 10 years ago that have completely given up on that specific matter so the information on these outdated videos is also minimal, and now, out of nowhere, I bumped into this video on my home page. I'd really love to see more guides concerning drivers' development. That was incredible.
@matteoveraldi.musica11 ай бұрын
Same
@israelperezmasle66739 ай бұрын
I wasn't even looking, it just popped up
@johnmarks7145 ай бұрын
Pavel Yosifovich is another good source. Dont know about his videos, but he's written good low level programming type books, such as device driver dev and theyre current.
@Алексей-ч4у3з4 ай бұрын
so there are no new episodes and this video is more HELLO WORLD than really driver development guide
@harleyspeedthrust401323 күн бұрын
There's great stuff on msdn
@georgeadrianstefan167611 ай бұрын
Another episode of: Things I will never do but watch anyway because i like them.
@lucianprl8 ай бұрын
at least I'm not the only one who does this :)))
@mr.t98167 ай бұрын
Oh now i understand why this very very specific video has 250k+ views lol.
@sadiulhakim78147 ай бұрын
@@lucianprl Same here
@BarryKawooya-c3g Жыл бұрын
Everything to get you started with drivers
@johnshaw6702 Жыл бұрын
I liked it. I haven't written a driver in 25 years, but I see things have changed. Short but sweet.
@szyszqu Жыл бұрын
Damn, at the beginning I couldn't even tell if it was Linux or Windows with that DWM bar, looks amazing!
@nirlichtman Жыл бұрын
dwm-win32 :)
@preludelight Жыл бұрын
I thought "There's no way a sub 8 minute video is going to be enough to be informative for a topic like this." I was completely wrong. This was well paced, straight forward, and better than I could have imagined. This will be the go-to video I send to people who want to start with kernel mode dev but don't understand quite where to get started. Also: What shell replacement are you using, It looks swell!
@nirlichtman Жыл бұрын
Thanks! :) I use a port of Suckless dwm for Windows called dwm-win32, it actually sits on top of the shell and does not replace it but rather it works by managing the existing windows and listening to newly created ones
@cocosloan3748 Жыл бұрын
Do not encourage this fellow... Next time he will do it in 4 minutes and I wont get it at all 😢
@jyothishkumar309811 ай бұрын
@@nirlichtman Much like xoblite or Kera desktop
@madghostek3026 Жыл бұрын
extremely good tutorial, coincise, no pauses, everything planned
@nyzss Жыл бұрын
incredible content, I would love to see more videos that introduce or expend on more low level concepts. thank you!
@shauryayamdagni Жыл бұрын
expand
@johnmarks714 Жыл бұрын
Please expand
@yabbaso Жыл бұрын
Yes please, taking these to the next level
@Potew Жыл бұрын
I wonder how much knowledge and IQ is needed for making all these steps with such easiness. Thanks for the video!
@Speed4Runs Жыл бұрын
It amazes me how someone can be both a CS geek and cute at the same time I've always been interested in drivers development, but despite having both hardware/electronics and kernel knowledge, I had no idea of where to start for drivers, ESPECIALLY on Windows. Thanks!
@nirlichtman Жыл бұрын
Thanks for the compliment :)
@runninggames7719 ай бұрын
lmao bro got rizzed on a fucking driver tutorial
@Speed4Runs9 ай бұрын
@@runninggames771 could you believe it? Being weird and coding really bring the most unexpected parts of people
@gatonegro1878 ай бұрын
eww gay
@felipemurta91607 ай бұрын
@@runninggames771lmaoo
@g4yktzgjx6 Жыл бұрын
Video starts "Before you start writing a driver" Wait.. You skipped 6 steps. "Hello", "Subscribe", "Like", "Sponsor", "Basic shit you should know before even clicking the video", and "Thank you". Overall. Nice, short, and concise video. More of this please!
@NullCyan Жыл бұрын
Please make more Windows low level programming, this is awesome! suggestion: tutorials on C windows api
@ufufuawa401 Жыл бұрын
How bout Native API Programming :3 ?
@NullCyan Жыл бұрын
@@ufufuawa401 true :3
@dsihacks Жыл бұрын
@@ufufuawa401 aint no way we making our own csrss.exe 💀
@awaismushtaq57199 ай бұрын
@@ufufuawa401 couldn't agree more. We all need to know how things used to be during good old days
@dtikvxcdgjbv79759 ай бұрын
I love Your work. Very helpful. You proved us that creating a driver is not a rocket science. Now some humorous stuff. When I saw the driver not stopping from executing, I expected that You'll like a true programmer make fun of it by saying: "OMG, how is this thing stopping?"
@waleedalrashed1411 Жыл бұрын
Even though I learned about drivers back in Uni. It was all theory. your 7-minute long video was the missing piece. Like your video style, not asking for [like , share, comment] just straight to the point with no pauses. Appreciate your hard work. p.s: liked , shared, subed ✅
@nirlichtman Жыл бұрын
Thanks :)
@HarperLee1840 Жыл бұрын
That's quality content I want on KZbin. Great video sir.
@uschurch Жыл бұрын
You have the best programming tutorials.👌If everyone made their tutorials as concise and terse KZbin could free half of its storage.😂
@nirlichtman Жыл бұрын
Thanks! :)
@stefanosbek11 ай бұрын
I absolutely love these. Short but informational.
@chipling73679 ай бұрын
Thank you so much Nir, that's the kind of video I enjoyed the most. Short and informative. No BS. Thanks again.
@rohitjacob8035 ай бұрын
Finally someone decided to put out on a tutorial on writing windows driver instead of linux
@abdullahtrees5204 Жыл бұрын
This is an excellent video! To the point, concise and beautifully simple! Thanks a lot
@GrindAlchemyTech Жыл бұрын
You explain very well....the delivery is rare ....many videos I've watched...it's rare to get explanations that actually explain things if that makes sense... thank you ♌🙌🏽💗
@nirlichtman Жыл бұрын
Thanks! :)
@faustasazuolasbagdonas123 Жыл бұрын
Short and straight to the point 👍. Subscribed.
@orcofnbu11 ай бұрын
i feel so lucky that i found this content. just wow
@HumanGamer Жыл бұрын
I've been wanting to know windows driver dev for years and suddenly you make this video! Thank you. Would you be able to do more tutorials on windows drivers? For example, what about a driver for a virtual floppy disc or something? I'd love to see that.
@nirlichtman Жыл бұрын
Yes, planning on more driver/kernel level videos, it's a very interesting subject :)
@sameerakhatoon9508 Жыл бұрын
@@nirlichtman would love to watch more on this
@Acradasa4 ай бұрын
i can't get enough of your content, it's that good!
@joab83 Жыл бұрын
simple, concise and excellent for learning basic concepts!
@Songfugel7 ай бұрын
Wow, this was an amazing video! so clear and so informative without skipping any steps (like sadly so many do) that are "obvious" to people who this every day
@formlessone2807 Жыл бұрын
Well done - succinct, hits the important points. Thanks for this!
@597das Жыл бұрын
are you using a tiling window manager within windows? or do you just have multiple instances of a vm on different linux workspeces? if so, what tiling window manager are you using? I tried komorebi a few years back but it was pretty early in development back then.
@ardnys35 Жыл бұрын
that looks like i3 and it's a nice wm for linux. seeing it on windows is kinda cursed but it got me curious too. anyways maybe give i3 a try, it's pretty easy to setup and configure
@nirlichtman Жыл бұрын
@597das I use a port of Suckless dwm for Windows called dwm-win32, more information on the vid about my setup
@vladislavkaras491 Жыл бұрын
It was interesting to watch how to create a simple driver! Thanks for the video!
@ciscornBIG Жыл бұрын
HELL YEAH! I'll check this out this later today. Thanks, broseph!
@none_of_your_business Жыл бұрын
Interesting, after 10 years of linux kernel programming, I never knew that windows also has something akin to dmesg, I also love how short and to the point this was. Kol hakavod.
@nirlichtman Жыл бұрын
Toda! It's somewhat similar to dmesg but also different since dmesg shows you the kernel log buffer and the program dbgview just connects as a debugger to the user mode programs/kernel and shows you debug prints (although it does have a feature to log boot)
@jbray250 Жыл бұрын
Fantastic tutorial and well explained, subscribed and looking forward to more
@BigA1 Жыл бұрын
Not being a full time programmer, I would like to see a 'Real World' example of what a driver is and what it can do, if that's possible?
@nirlichtman Жыл бұрын
Yes, I plan on making a more general video about drivers as well :)
@TheNewKill1212 Жыл бұрын
I've been developing kernelmode driver for anti-cheat system, used assembly on x86 and ObRegisterCallbacks on x64. This is one of the examples. Another example is a device driver as you can access everything from kernel, you can for example ask PCI device directly.
@GuildOfCalamity Жыл бұрын
Never seen this explained so succinctly, bravo! Could you do another tutorial for creating a driver to talk to a USB device?
@nirlichtman Жыл бұрын
Thanks! Noted, that is a good idea :)
@complexity55456 ай бұрын
I was trying to refresh making microsoft drivers. Good video.
@alexandrohdez3982 Жыл бұрын
Driver is complex, thank you 👏👏👏👏
@mattmurphy70305 ай бұрын
This is exactly the kind of stuff I want to see. Thanks!
@pascalcoole27259 ай бұрын
Nir, thanks, i don't understand anything about MicroSoft Windows, running Linux since 1994 as wel as some UNICES. Your video however is the first interesting instruction on MicroSoft development i have ever seen. Main interesting thing is that you actualy show whats happening iso obfuscating the whole process using an IDE.
@progste Жыл бұрын
Very well made and without wasting time!
@jonweinraub9 ай бұрын
Really fantastic how the algorithm shows something I didn’t think I wanted to learn but now I do. Why though you needed the two voided parameters but wasn’t used on call with null unless I missed something. תודה
@nirlichtman9 ай бұрын
That is just to follow the entry point signature according to the docs which specifies that the driver entry gets two parameters, I did not used the information passed into these parameters so I just ignored them. בכיף 🙂
@netanelkomm5636 Жыл бұрын
הופתעתי ושמחתי באותו זמן לגלות שאתה ישראלי כשראיתי ״שבת, 02 דצמבר״ :)
@nirlichtman Жыл бұрын
:)
@emblink279 ай бұрын
Watched the video. Added driver development to my cv 😁
@illusoryknowledge93077 ай бұрын
The couple cringe comments bashing Vim or C is laughable and makes one question if they even know programming. Great video, most have sought profit by means of their 20 minute diatribes, inefficiently transmitting that thing called knowledge. This is a pleasant contrast.
@sinaghaderi9184 Жыл бұрын
Nice video 👍🏼 Ps: now i understand the beauty of the linux kernel.. way more cooler and easier to write a kernel module 🧑💻
@nirlichtman Жыл бұрын
Thanks!
@indianbandhu11 ай бұрын
Holy Sh**!...Dam it so precise, so concise tutorial..freaking amazing!!!🤩
@ilyastoletov5 ай бұрын
Nice video. I certainly won't write any drivers for Windows but the commands' syntax of Windows shell is quite interesting, although similar to Linux
@深夜酒吧 Жыл бұрын
how to get your driver certified by ms? how much money does it take to do that?
@tamirrothschild Жыл бұрын
לא יודע איך הגעתי לפה אבל כל הכבוד לך ובהצלחה עם הערוץ
@nirlichtman Жыл бұрын
תודה!
@m.gredemptor2610 Жыл бұрын
Man after looking at C-Drive for 20 years, your title just gave me a brain fart 😂.
@siiiiiiiiiiiiiiiiiuu3 ай бұрын
did this guy just entered PC godmode? yes!
@nostromza343311 ай бұрын
How do you sign the driver?
@Rombizio6 ай бұрын
The cmd prompt to compile this alone make me cry. The extra steps to make it work put me in fetal position.
@gaeshows1938 Жыл бұрын
It’s better to debug your driver inside a VM to avoid having to restart your PC every time you get a BSOD
@paradoxicalcat71735 ай бұрын
The first time I wrote a Windows driver I didn't BSOD the machine once. Driver dev isn't for you if you can't handle memory.
@kern776 Жыл бұрын
You are ANGEL!! Thank you buddy, i suscribed )) thanks
@test-rj2vl11 ай бұрын
If you just want to play around and learn I would suggest using VirtualBox or VMware or something similar. Then you don't have to restart. Also if you brick your computer like infinite boot loop or something then with VM you just restore previous snapshot and you are ready to go again.
@karlm9584 Жыл бұрын
This is great thank you. I never knew how to create services like that. Would that service also show up in Windows services?
@nirlichtman Жыл бұрын
It won't show up in the services application since it is technically not a service but a kernel driver (I ran sc with type= kernel), SC supports also creating and loading drivers and calls them also "services" but you can see it is a driver by looking at the type (with sc query for example) and seeing that it says "KERNEL_DRIVER".
@hoteny Жыл бұрын
4:30 so back in 2020 i think, I tried vjoy driver installation but failed because it wasnt signed. I enabled test mode and it still didnt work. Now vjoy is signed by someone who loves paying hundreds of dollars a year but i still dont get how test mode didnt work at all…
@jackgerberuae Жыл бұрын
What would you do with a driver though. All hardware drivers are supplied by MS or the vendor, right?
@dylanh333 Жыл бұрын
Access and manipulate kernel data structures normally not available in userland, implement file system filters, hook system calls, etc. The term "driver" in Windows tends to more generically refer to kernel modules (in Linux terminology), rather than just stuff for "driving" actual hardware. That said, you do also have some "user-mode drivers" that *are* for driving hardware, and don't run in kernel mode ¯\_(ツ)_/¯
@jackgerberuae Жыл бұрын
@@dylanh333 that is a very clear explanation, thank you 🙏
@kcirtaP69 Жыл бұрын
If "sc create driverName binPath= C:\path\to\driver.sys type= kernel" is giving you an error try using sc.exe
@onurguzel16 Жыл бұрын
Very nice topic and indeed what I'm really interested in kernel mode drivers, many thanks. However, just being curious, at 05:49, why didn't compiler emit an error eventhough you left one space after "binPath=" then typing the path after this a space in final stage?
@dylanh333 Жыл бұрын
That command wasn't a compiler - sc.exe (I believe) stands for Service Control (similar in function to `systemctl` on a Linux system with systemd), and it has some pretty funky and nonstandard command line syntax, including the values for named parameters requiring leading whitespace. Under the hood in Windows, drivers are also "services" too, hence why this was used to register the driver as a service and then subsequently start it.
@autohmae Жыл бұрын
sc just handles services as mentioned by dylanh333. Their is a tool called: srvman from SysProgs. This can show you all drivers are also services.
@onurguzel16 Жыл бұрын
@@dylanh333 ah, yes, I know it was SC command, sure. Just weird that it completed fine with white space after equals sign (and no enclosing quotation marks for the path, maybe because of the path had no any space, that's another thing) which I wanted to know. Same also happens for "type" parameter in the same command call leaving one space again. Thanks friend.
@kinershah4647 ай бұрын
Awesome, nice and simple. 👍
@SeanChYT11 ай бұрын
Is there any way to install custom certificates or anything so that we can sign our own drivers? Disabling driver signature verification permanently is becoming very difficult on modern Windows versions if I remember correctly. It used to be easier.
@DeadCat-427 ай бұрын
I used to make all kinds of genetic print drivers for hp laser printers to get around the bloat ware they pushed.
@MNE-yk8vp Жыл бұрын
no intro, no curve ball, just straight nerd-ery
@HimanshuShekhar19 ай бұрын
This is super awesome channel. Thank you
@michaeldonoghue90159 ай бұрын
Great video. I would just add that you should always wear your seatbelt when writing a driver. Safety first.
@jasdfff7707 ай бұрын
I don't quite understand what a driver does. What is the difference from a "normal" program? And isn't a driver a specific program that a hardware uses to communivate with the OS? If so, the driver you created doesn't have any hardaware attached to it. If you could explain to me... thanks!
@josephdaquila24793 ай бұрын
I don't seem to be seeing the "km" folder. I'm wondering if there was something I had to do beforehand to gain access to that folder. I see a "um" folder, presumably "user mode". EDIT: followed the guide for downloading the SDK and the WDK and we're good now. I guess what was already installed in the directory only included the user mode directory "um".
@strange1702 Жыл бұрын
would be cool to see c++ version of drivers as well as how to sign a driver (:
@0o29k27 ай бұрын
just write ur code in c++, cl is a c++ compiler
@paradoxicalcat71735 ай бұрын
C++ isn't supported in kernel driver development as it uses memory in ways kernel mode drivers can't support due to the nature of memory management in the kernel.
@strange17025 ай бұрын
@@paradoxicalcat7173 tf you talking about, it is supported, i have been writing kernel drivers for a decade now in c++ obviously...
@strange17025 ай бұрын
@paradoxicalcat7173 literally usermode functions such as readprocessmemory is streamed from kernel... what you said is basically "i cant read this book, because its in French, and translations are impossible"
@kamugishajoseph646710 ай бұрын
The precise video about drivers development. Can you continue and create executable file for driver ?
@Veso266 Жыл бұрын
Nice Would love to see a more detail video like how to comunicate with a driver from ur user program Suppose u are making a device driver, so how would u get data in and out of it with ur user program so u could comunicate with a device on the other side of a driver?
@nirlichtman Жыл бұрын
That is a good idea for a future video, thanks :)
@clyxos3405 Жыл бұрын
How did you get the dwm looking desktop?
@nirlichtman Жыл бұрын
I use a port of Suckless dwm for Windows, more info on the vid about my setup
@samholland2093 ай бұрын
5:11 What language is that on your laptop's lock screen?
@nirlichtman3 ай бұрын
Hebrew
@ohioisbruh11 ай бұрын
Just have a doubt... How to implement this driver onto a device... cuz today most devices are plug & play...
@saecula23915 ай бұрын
Klasse Video Vielen Dank, kurz und kompakt ... btw Ich benutze u.a. Visual Studio hauptberuflich ✨
@defaultentertainment697 Жыл бұрын
nice albums on the wall man, starset and breaking benjamin.
@nirlichtman Жыл бұрын
Thanks! 🤘
@defaultentertainment697 Жыл бұрын
@@nirlichtman i religiously listen to downplay's saturday album on every saturday, starting with it's saturday song.
@nirlichtman Жыл бұрын
@@defaultentertainment697 Nice song! has some early Breaking Benjamin vibes :) I like the original Downplay version of Dark on Me
@madpsyber636 Жыл бұрын
what tiling manager are u using for windows i cant find a good one that i can easily customize
@nirlichtman Жыл бұрын
I use a port of Suckless dwm called dwm-win32, more info on the vid about my setup
@binks3371 Жыл бұрын
can you do more driver videos ? Like how to write a simple filesystem driver.
@nirlichtman Жыл бұрын
Yes, more driver videos are planned :)
@duckydude20 Жыл бұрын
thanks 😊 i want to get started with windows internals. mostly for re stuff. any suggestions
@nirlichtman Жыл бұрын
I would recommend starting with checking out the sysinternals suite and learning and playing around with windbg (both of which are available on the winget package manager), good luck!
@lPlanetarizado10 ай бұрын
there is a book called "windows internals" (the last one, 7 edition) that has 2 volumes and its a great introduction to windows, and learning to set up a kernel debugging session with a VM is huge, tho i recommend normal debugging first , kernel debugging can be overwhelming if you are not familiar
@roncato79 ай бұрын
Can you provide an e2e example next?
@ok-gp7gr11 ай бұрын
I'm getting error startservice failed 577, "Windows cannot verify the digital signature for this file". I have checked that I have done the step where you disabled the Windows driver signature enforcement; am I missing a step?
@BrandoMusicX29 күн бұрын
I don't have any "km" dir in the path you specified, what can I do?
@nirlichtman28 күн бұрын
Sounds like you haven't installed the Windows Driver Kit, check out the description for required installations
@BrandoMusicX26 күн бұрын
@@nirlichtman oh thank you, I felt like I had installed it correctly but apparently not 😅. Thank you very much for answering.
@bgill7475 Жыл бұрын
Excellent and straight to the point, thank you very much! 🙂
@isyankarmakarna98658 ай бұрын
wxcuse me. please tell me how can i write a keyboard driver for autopress. forexample it can be autopressd "z" when the notepad open.
@RiadAhmed-ce6qo6 ай бұрын
Nice one 👍 is that working with hive and hardware abstraction layer ?
@DrVektor Жыл бұрын
Thank you for this example.
@dzwassim954 ай бұрын
nice
@soyysaucceee11 ай бұрын
Nice video! deserve likes and subs
@oldiemcfee6 ай бұрын
Can you do one for mac/unix systems?
@nirlichtman6 ай бұрын
I have one for Linux, check out making a simple kernel module on my linux kernel playlist
@ahwbjsjianwekem8311 Жыл бұрын
isnt `bcdedit -set testsigning on` enough dor it to load?
@amuga_16 күн бұрын
Good day. In my windows sdk folder there is not km/ directory
@nirlichtman6 күн бұрын
Have you also installed the Windows Driver Kit? (info in description)
@amuga_16 күн бұрын
@nirlichtman I actually had to install it from Microsoft website because it was not in the directory despite installing it using Visual Studio Installer. Surprisingly installing windows driver kit (wdk) from Microsoft websites installs a standalone directory inside Lib called wdf. Then there's kmdf and umdf folders 📂. Like what's up Microsoft haha. And I found km inside the SDK I downloaded from Microsoft Website
@anon_y_mousse Жыл бұрын
Any chance you'd know how to do this for Win98? I've got a copy of VS6 and it might be neat to play around with it in this way.
@ThamanKumariThapa Жыл бұрын
Can you create a color button in c++ ?
@Kalo_lpader11 ай бұрын
What is the drive good for?
@lilhaxxor11 ай бұрын
Very nice. Things I want to know: - Is the "cl" compiler "Clang" or something else ? - What happens when you crash a driver ? Do you know the procedure to handle that safely or is it a guaranteed blue screen ?
@nirlichtman11 ай бұрын
- "cl" is the Visual Studio compiler - unless you tell it to compile only, it also calls the linker after it finishes compiling (in the video I passed to cl flags for the compiler and for the linker) - You can handle exceptions in the driver safely - more information here: learn.microsoft.com/en-us/windows-hardware/drivers/kernel/handling-exceptions
@stati5tik11 ай бұрын
can you make a video showing how to communicate from a driver with actual hardware that is connected via usb?
@nirlichtman11 ай бұрын
Yes, it is on the list :)
@stati5tik11 ай бұрын
@@nirlichtman nice (-:
@duyhung.306 ай бұрын
sir how to have dwm like that in windows. thank you for great conents btw
@Sl33pySt3rdust29 күн бұрын
im not sure what im doing wrong, but im always getting a message saying "Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source."
@nirlichtman29 күн бұрын
Have you booted Windows with driver signature checking disabled, as I demonstrated in the video?
@Sl33pySt3rdust28 күн бұрын
@@nirlichtman i watched that part of the video again and it works now, thanks