Making Simple Windows Driver in C

Sdílet
Vložit
  • čas přidán 12. 05. 2024
  • In this video I will demonstrate how you can write a simple "Hello, World" driver for Microsoft Windows 10 using the C Programming Language.
    The code is just for fun and not suitable for production.
    For the installation of the dependencies check out the following guide: learn.microsoft.com/en-us/win...
    Notice that you can install the headless build tools of Visual Studio (as I did) instead of the regular installation that includes the graphical IDE
    You can install Sysinternals Suite (which includes dbgview that I used in the video) from the Microsoft Store or with winget.
  • Věda a technologie

Komentáře • 346

  • @georgeadrianstefan1676
    @georgeadrianstefan1676 Před 4 měsíci +99

    Another episode of: Things I will never do but watch anyway because i like them.

    • @lucianprl
      @lucianprl Před měsícem +2

      at least I'm not the only one who does this :)))

    • @mr.t9816
      @mr.t9816 Před 12 dny

      Oh now i understand why this very very specific video has 250k+ views lol.

    • @sadiulhakim7814
      @sadiulhakim7814 Před 6 dny

      @@lucianprl Same here

  • @bmx666bmx666
    @bmx666bmx666 Před 2 měsíci +57

    0 water, 100% short and useful information. Thanks!

  • @badtrip858
    @badtrip858 Před 5 měsíci +132

    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.

  • @user-kk4vy7uq5o
    @user-kk4vy7uq5o Před 5 měsíci +152

    Everything to get you started with drivers

  • @preludelight
    @preludelight Před 5 měsíci +244

    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
      @nirlichtman  Před 5 měsíci +23

      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
      @cocosloan3748 Před 4 měsíci +15

      Do not encourage this fellow...
      Next time he will do it in 4 minutes and I wont get it at all 😢

    • @jyothishkumar3098
      @jyothishkumar3098 Před 4 měsíci

      ​@@nirlichtman Much like xoblite or Kera desktop

  • @madghostek3026
    @madghostek3026 Před 5 měsíci +73

    extremely good tutorial, coincise, no pauses, everything planned

  • @johnshaw6702
    @johnshaw6702 Před 5 měsíci +7

    I liked it. I haven't written a driver in 25 years, but I see things have changed. Short but sweet.

  • @stefanosbek
    @stefanosbek Před 4 měsíci +5

    I absolutely love these. Short but informational.

  • @nyzss
    @nyzss Před 5 měsíci +114

    incredible content, I would love to see more videos that introduce or expend on more low level concepts. thank you!

  • @abdullahtrees5204
    @abdullahtrees5204 Před 5 měsíci +16

    This is an excellent video! To the point, concise and beautifully simple! Thanks a lot

  • @NullCyan
    @NullCyan Před 5 měsíci +81

    Please make more Windows low level programming, this is awesome!
    suggestion: tutorials on C windows api

    • @ufufuawa401
      @ufufuawa401 Před 5 měsíci +4

      How bout Native API Programming :3 ?

    • @NullCyan
      @NullCyan Před 5 měsíci

      @@ufufuawa401 true :3

    • @dsihacks
      @dsihacks Před 5 měsíci

      @@ufufuawa401 aint no way we making our own csrss.exe 💀

    • @awaismushtaq5719
      @awaismushtaq5719 Před 2 měsíci +4

      @@ufufuawa401 couldn't agree more. We all need to know how things used to be during good old days

  • @szyszqu
    @szyszqu Před 5 měsíci +5

    Damn, at the beginning I couldn't even tell if it was Linux or Windows with that DWM bar, looks amazing!

  • @faustasazuolasbagdonas123
    @faustasazuolasbagdonas123 Před 5 měsíci +4

    Short and straight to the point 👍. Subscribed.

  • @HarperLee1840
    @HarperLee1840 Před 5 měsíci +4

    That's quality content I want on CZcams. Great video sir.

  • @joab83
    @joab83 Před 5 měsíci +9

    simple, concise and excellent for learning basic concepts!

  • @chipling7367
    @chipling7367 Před 2 měsíci +1

    Thank you so much Nir, that's the kind of video I enjoyed the most. Short and informative. No BS. Thanks again.

  • @HumanGamer
    @HumanGamer Před 5 měsíci +9

    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
      @nirlichtman  Před 5 měsíci +10

      Yes, planning on more driver/kernel level videos, it's a very interesting subject :)

    • @sameerakhatoon9508
      @sameerakhatoon9508 Před 5 měsíci +1

      @@nirlichtman would love to watch more on this

  • @jbray250
    @jbray250 Před 5 měsíci +7

    Fantastic tutorial and well explained, subscribed and looking forward to more

  • @Potew
    @Potew Před 4 měsíci +1

    I wonder how much knowledge and IQ is needed for making all these steps with such easiness. Thanks for the video!

  • @formlessone2807
    @formlessone2807 Před 5 měsíci +3

    Well done - succinct, hits the important points. Thanks for this!

  • @waleedalrashed1411
    @waleedalrashed1411 Před 5 měsíci +6

    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 ✅

  • @vladislavkaras491
    @vladislavkaras491 Před 5 měsíci +1

    It was interesting to watch how to create a simple driver!
    Thanks for the video!

  • @ciscornBIG
    @ciscornBIG Před 5 měsíci +1

    HELL YEAH! I'll check this out this later today. Thanks, broseph!

  • @GrindAlchemyTech
    @GrindAlchemyTech Před 5 měsíci +14

    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 ♌🙌🏽💗

  • @dtikvxcdgjbv7975
    @dtikvxcdgjbv7975 Před 2 měsíci +2

    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?"

  • @uschurch
    @uschurch Před 5 měsíci +3

    You have the best programming tutorials.👌If everyone made their tutorials as concise and terse CZcams could free half of its storage.😂

  • @progste
    @progste Před 5 měsíci +2

    Very well made and without wasting time!

  • @GuildOfCalamity
    @GuildOfCalamity Před 4 měsíci +1

    Never seen this explained so succinctly, bravo!
    Could you do another tutorial for creating a driver to talk to a USB device?

    • @nirlichtman
      @nirlichtman  Před 4 měsíci +1

      Thanks! Noted, that is a good idea :)

  • @orcofnbu
    @orcofnbu Před 4 měsíci +2

    i feel so lucky that i found this content. just wow

  • @Speed4Runs
    @Speed4Runs Před 4 měsíci +4

    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
      @nirlichtman  Před 4 měsíci +2

      Thanks for the compliment :)

    • @runninggames771
      @runninggames771 Před 2 měsíci +2

      lmao bro got rizzed on a fucking driver tutorial

    • @Speed4Runs
      @Speed4Runs Před 2 měsíci +2

      @@runninggames771 could you believe it? Being weird and coding really bring the most unexpected parts of people

    • @gatonegro187
      @gatonegro187 Před měsícem

      eww gay

    • @felipemurta9160
      @felipemurta9160 Před 18 hodinami

      @@runninggames771lmaoo

  • @alexandrohdez3982
    @alexandrohdez3982 Před 5 měsíci +1

    Driver is complex, thank you 👏👏👏👏

  • @DrVektor
    @DrVektor Před 5 měsíci

    Thank you for this example.

  • @pascalcoole2725
    @pascalcoole2725 Před 2 měsíci

    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.

  • @HimanshuShekhar1
    @HimanshuShekhar1 Před měsícem

    This is super awesome channel. Thank you

  • @kern776
    @kern776 Před 5 měsíci +2

    You are ANGEL!! Thank you buddy, i suscribed )) thanks

  • @bgill7475
    @bgill7475 Před 5 měsíci +2

    Excellent and straight to the point, thank you very much! 🙂

  • @jonweinraub
    @jonweinraub Před 2 měsíci

    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. תודה

    • @nirlichtman
      @nirlichtman  Před měsícem

      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.
      בכיף 🙂

  • @Veso266
    @Veso266 Před 5 měsíci +1

    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
      @nirlichtman  Před 5 měsíci +1

      That is a good idea for a future video, thanks :)

  • @597das
    @597das Před 5 měsíci +14

    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
      @ardnys35 Před 5 měsíci +3

      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
      @nirlichtman  Před 5 měsíci +11

      @597das I use a port of Suckless dwm for Windows called dwm-win32, more information on the vid about my setup

  • @xx_xxx_xxx_xx
    @xx_xxx_xxx_xx Před 3 měsíci

    Btw you don't need to disable DSE to load drivers
    From an elevated command promoted run:
    bcdedit /set testsigning on
    Then reboot and you should see that windows is running in test mode and you can load the driver. To turn it off run the same command with the off option (which is self explanatory)

  • @DroneMothership
    @DroneMothership Před 5 měsíci +1

    Solid bro!!

  • @sinaghaderi9184
    @sinaghaderi9184 Před 5 měsíci +1

    Nice video 👍🏼 Ps: now i understand the beauty of the linux kernel.. way more cooler and easier to write a kernel module 🧑‍💻

  • @g4yktzgjx6
    @g4yktzgjx6 Před 4 měsíci

    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!

  • @indianbandhu
    @indianbandhu Před 4 měsíci

    Holy Sh**!...Dam it so precise, so concise tutorial..freaking amazing!!!🤩

  • @MrChrisRP
    @MrChrisRP Před 4 měsíci

    Nasty, dude. Rock! You make the NirSoft stuff? Just wondering, with the coincidence in names is all. I like those tools a lot myself and use them since forever. Same with Russinovich's stuff.

  • @onurguzel16
    @onurguzel16 Před 5 měsíci +1

    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
      @dylanh333 Před 5 měsíci +3

      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
      @autohmae Před 5 měsíci

      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
      @onurguzel16 Před 5 měsíci

      @@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.

  • @emblink27
    @emblink27 Před 2 měsíci +1

    Watched the video.
    Added driver development to my cv 😁

  • @BigA1
    @BigA1 Před 5 měsíci +7

    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
      @nirlichtman  Před 5 měsíci +4

      Yes, I plan on making a more general video about drivers as well :)

    • @TheNewKill1212
      @TheNewKill1212 Před 5 měsíci

      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.

  • @Zpicismrad
    @Zpicismrad Před 2 měsíci

    awesome, subscribed!

  • @karlm9584
    @karlm9584 Před 5 měsíci +1

    This is great thank you. I never knew how to create services like that. Would that service also show up in Windows services?

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +2

      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".

  • @kamugishajoseph6467
    @kamugishajoseph6467 Před 3 měsíci

    The precise video about drivers development.
    Can you continue and create executable file for driver ?

  • @muzairafzal1529
    @muzairafzal1529 Před 5 měsíci

    Great work brother

  • @gregorymccoy6797
    @gregorymccoy6797 Před 4 měsíci

    Good video. Very clear

  • @joseloeza371
    @joseloeza371 Před 5 měsíci

    Excellent video thanks

  • @strange1702
    @strange1702 Před 5 měsíci +2

    would be cool to see c++ version of drivers as well as how to sign a driver (:

    • @0o29k2
      @0o29k2 Před 17 dny

      just write ur code in c++, cl is a c++ compiler

  • @netanelkomm5636
    @netanelkomm5636 Před 5 měsíci

    הופתעתי ושמחתי באותו זמן לגלות שאתה ישראלי כשראיתי ״שבת, 02 דצמבר״ :)

  • @none_of_your_business
    @none_of_your_business Před 5 měsíci +3

    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
      @nirlichtman  Před 5 měsíci

      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)

  • @TobyAdd
    @TobyAdd Před 4 měsíci

    awesome video!

  • @soyysaucceee
    @soyysaucceee Před 4 měsíci

    Nice video! deserve likes and subs

  • @antoniothomacelli
    @antoniothomacelli Před 2 měsíci

    Thank you for share.

  • @gaeshows1938
    @gaeshows1938 Před 5 měsíci +4

    It’s better to debug your driver inside a VM to avoid having to restart your PC every time you get a BSOD

  • @xKreesherZ
    @xKreesherZ Před 4 měsíci

    I loved this video

  • @KeplerEmeritus
    @KeplerEmeritus Před 5 měsíci

    Why is it necessary to use the VS tools? I've never delved that deep into Windows development, so, could you not just compile and link using other tools like GCC or Clang granted the requires libs are there? Also, how can we sign the driver to use it "for realsies"?

  • @test-rj2vl
    @test-rj2vl Před 4 měsíci

    Can you make video of getting your driver signed so you could run it normally? It's something that we all have to do at some point anyways. MS official tutorial can be big and scary at the beginning. It's not clear if it costs money or if if it's possible for free also.

  • @SMFJose
    @SMFJose Před 5 měsíci

    Thanks for sharing

  • @lilhaxxor
    @lilhaxxor Před 4 měsíci

    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 ?

    • @nirlichtman
      @nirlichtman  Před 4 měsíci +1

      - "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

  • @fabiosarts
    @fabiosarts Před 4 měsíci

    I just tried the guide on Windows 2000 with its own WDK, it compiled pretty well. Unafotunately i couldn't try it since i couldn't add the sevice, as there's no sc command on that version :O

    • @nirlichtman
      @nirlichtman  Před 4 měsíci

      Nice! Yah sc is only included with WinXP or higher but maybe you can try loading it with the registry

  • @DeadCat-42
    @DeadCat-42 Před 11 dny

    I used to make all kinds of genetic print drivers for hp laser printers to get around the bloat ware they pushed.

  • @m.gredemptor2610
    @m.gredemptor2610 Před 5 měsíci

    Man after looking at C-Drive for 20 years, your title just gave me a brain fart 😂.

  • @binks3371
    @binks3371 Před 4 měsíci

    can you do more driver videos ? Like how to write a simple filesystem driver.

    • @nirlichtman
      @nirlichtman  Před 4 měsíci

      Yes, more driver videos are planned :)

  • @Selbstzensur
    @Selbstzensur Před 4 měsíci

    Thank you ❤

  • @SeanChYT
    @SeanChYT Před 4 měsíci

    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.

  • @Jamboom-et5qg
    @Jamboom-et5qg Před 4 měsíci

    good!got it!

  • @anon_y_mousse
    @anon_y_mousse Před 5 měsíci

    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.

  • @garlic-os
    @garlic-os Před 5 měsíci

    Subscribed. Can you make a Windows Shell Extension next?

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +1

      Thanks :) Yes, that's a good idea for the next Windows video!

  • @defaultentertainment697
    @defaultentertainment697 Před 5 měsíci

    nice albums on the wall man, starset and breaking benjamin.

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +1

      Thanks! 🤘

    • @defaultentertainment697
      @defaultentertainment697 Před 5 měsíci

      @@nirlichtman i religiously listen to downplay's saturday album on every saturday, starting with it's saturday song.

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +1

      @@defaultentertainment697 Nice song! has some early Breaking Benjamin vibes :) I like the original Downplay version of Dark on Me

  • @nunoalexandre6408
    @nunoalexandre6408 Před 5 měsíci

    Love it!!!!!!!!!!!!!

  • @madpsyber636
    @madpsyber636 Před 5 měsíci +1

    what tiling manager are u using for windows i cant find a good one that i can easily customize

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +2

      I use a port of Suckless dwm called dwm-win32, more info on the vid about my setup

  • @wei48221
    @wei48221 Před 5 měsíci

    Awesome!!

  • @test-rj2vl
    @test-rj2vl Před 4 měsíci

    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.

  • @ikazuchi-san5772
    @ikazuchi-san5772 Před 5 měsíci

    yo nice video
    what window manager do you use?

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +1

      Thanks! I use a port of Suckless dwm for Windows called dwm-win32, more info on the vid about my setup :)

    • @ikazuchi-san5772
      @ikazuchi-san5772 Před 5 měsíci

      thank you buddy@@nirlichtman

  • @CrazyLuke11
    @CrazyLuke11 Před 5 měsíci

    I like your video!
    But what is that bar on the top? It looks like dwm but it looks like your using windows?!

    • @nirlichtman
      @nirlichtman  Před 5 měsíci

      Thanks! I am using a port of Suckless dwm for Windows, more info on the vid about my setup :)

  • @strob5657
    @strob5657 Před 5 měsíci +1

    Wait can you explain why .sys and not .inf? Do they serve the same purpose or is there a difference? This is so neat by the way it's super cool

    • @nirlichtman
      @nirlichtman  Před 5 měsíci +2

      Thanks :) .inf and .sys serve a different purpose, the sys file is the actual binary of the driver while inf files are textual config files that tell Windows how to install software/drivers

    • @strob5657
      @strob5657 Před 5 měsíci +1

      Ahh I see I see, thanks!! And again, really cool video I'm such a sucker for low level windows, thanks for making such a concise video about it!!

  • @lucasmachadozainote32
    @lucasmachadozainote32 Před 4 měsíci

    Omg this is mind blowing

  • @tamirrothschild
    @tamirrothschild Před 5 měsíci +1

    לא יודע איך הגעתי לפה אבל כל הכבוד לך ובהצלחה עם הערוץ

  • @joaomatos6172
    @joaomatos6172 Před 5 měsíci +2

    nice video

  • @duckydude20
    @duckydude20 Před 5 měsíci

    thanks 😊
    i want to get started with windows internals. mostly for re stuff.
    any suggestions

    • @nirlichtman
      @nirlichtman  Před 5 měsíci

      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!

    • @lPlanetarizado
      @lPlanetarizado Před 3 měsíci

      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

  • @TulhoKay
    @TulhoKay Před 2 měsíci

    Hello, I'm from Brazil, my English is at translator level. I started studying the x86 architecture, I can now create some codes. Could you guide me? I have an old notebook to do the tests. It uses several VIA components. My question, how do I get the codes for hardware control and stuff? Like, the bios has its interrupts is it a super I/O, video card? Everything is very confusing, this part involving peripherals.

  • @goofballbiscuits3647
    @goofballbiscuits3647 Před 2 měsíci

    Thank you! I had to modernize a driver for Win11 to use a 12+ year old printer. It's an amazing Canon from before the ink stuff started getting bananas. I spend $20/year on ink. The only problem I have is that Canon didn't want to modernize the driver!
    I've only developed for private companies. I know how they lock down IP and have heard that camera companies have gotten super greedy as well.
    Is it legal for me to release what I have for a win11 driver so others can enjoy it? Bound by US law here, so a bit nervous navigating this IP minefield lol I'm not hiring an attorney for my first FOSSy aspirations 😅

  • @Nunya58294
    @Nunya58294 Před 4 měsíci

    This is good stuff to know about!

  • @Andrei-cv1kn
    @Andrei-cv1kn Před 4 měsíci

    Great! Do you know how to create a Windows PCI driver that can be used by a Windows application to communicate with a device connected to the PCI bus?

    • @nirlichtman
      @nirlichtman  Před 4 měsíci

      Thanks! That sounds like a good idea for a future video, noted :)

  • @jackgerberuae
    @jackgerberuae Před 5 měsíci +2

    What would you do with a driver though. All hardware drivers are supplied by MS or the vendor, right?

    • @dylanh333
      @dylanh333 Před 5 měsíci +3

      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
      @jackgerberuae Před 5 měsíci +1

      @@dylanh333 that is a very clear explanation, thank you 🙏

  • @illusoryknowledge9307
    @illusoryknowledge9307 Před 11 dny

    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.

  • @drakouzdrowiciel9237
    @drakouzdrowiciel9237 Před 5 měsíci

    Good job ;)

  • @ibrahimzitouni5191
    @ibrahimzitouni5191 Před 5 měsíci

    Very good video

  • @midjhelins8383
    @midjhelins8383 Před 2 měsíci

    nice and curiously

  • @davidjulitz7446
    @davidjulitz7446 Před 4 měsíci

    Is this really the way to go nowadays? I remember I coded WDM drivers this way 25 years ago. I think the way to go now for WinXP and above is WDF.
    What you showed is very simple, kind of "Hello Word"? I'm missing the implementation of power Irps, pnp events and general Irp IO stack and how to handle that correctly? Which caused me many weeks of horrible work :D.

  • @adiyogi1003
    @adiyogi1003 Před 4 měsíci

    Nice bro

  • @michaeldonoghue9015
    @michaeldonoghue9015 Před 2 měsíci

    Great video. I would just add that you should always wear your seatbelt when writing a driver. Safety first.

  • @ok-gp7gr
    @ok-gp7gr Před 4 měsíci

    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?