寒江_第一个驱动
1、hjFirst.c
/// /// @file first.c /// @author crazy_chu /// @date2008-11-1 /// #include <ntddk.h>// 提供一個Unload函數只是為了 VOID DriverUnload(PDRIVER_OBJECT driver) {// 但是實際上我們什么都不做,只打印一句話:DbgPrint("first: Our driver is unloading…\r\n"); }// DriverEntry,入口函數。相當于main。 NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) { #if DBG // _asm int 3 #endif// 這是我們的內核模塊的入口,可以在這里寫入我們想寫的東西。// 我在這里打印一句話。因為”Hello,world” 常常被高手恥笑,所以// 我們打印一點別的。DbgPrint("first: Hello, my salary!");// 設置一個卸載函數便于這個函數能退出。// ZC: 寒江說:“我們設置了DriverEUnload的函數指針,這樣這個模塊可以被動態的卸載;// 如果沒有設置DriverEUnload函數指針,責一個內核模塊一旦被加載就不能卸載了。”driver->DriverUnload = DriverUnload;return STATUS_SUCCESS; }?
2、makefile
!IF 0Copyright (C) Microsoft Corporation, 1999 - 2002Module Name:makefile.Notes:DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new sourcefile to this component. This file merely indirects to the real make filethat is shared by all the components of Windows NT (DDK)!ENDIF!INCLUDE $(NTMAKEENV)\makefile.def?
3、sources
TARGETNAME=hjFirst TARGETTYPE=DRIVER SOURCES=hjFirst.c TARGETPATH=obj?
4、SRVINSTW.EXE 安裝驅動:
安裝服務-->本地機器-->服務名稱(自己輸入不重復的服務名稱)-->程序路徑(這里需要手動輸入sys文件所在的路徑和文件名)-->選擇"設備驅動"-->“驅動器目錄名”(這里是要輸入 NT式驅動的 驅動器目錄名),不要輸入任何內容,直接“下一步”-->“啟動類型”選擇“手動”--> 完成--> 成功的話,會提示“服務成功安裝”
ZC: 上面只能手動輸入 NT式驅動的sys文件所在的路徑和文件名,可以Debug修改一下 是的它能夠支持 選擇sys文件
?
4.1、啟動:“net start hjFirst”
4.2、停止:“net stop hjFirst”
5、
?
轉載于:https://www.cnblogs.com/DriverSkill/p/6182980.html
總結
- 上一篇: 打sp1补丁
- 下一篇: 美团集群调度系统的云原生实践