您的位置:首页 > 其它

驱动开发之一 --- 创建一个简单的设备驱动(续) 【译文】

2012-06-22 12:25 525 查看


驱动开发之一 --- 创建一个简单的设备驱动(续) 【译文】

接上:

动态加载和卸载驱动,代码如下:

int _cdecl main(void)

{

HANDLE hSCManager;

HANDLE hService;

SERVICE_STATUS ss;

hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);

printf("Load Driver\n");

if(hSCManager)

{

printf("Create Service\n");

hService = CreateService(hSCManager, "Example",

"Example Driver",

SERVICE_START | DELETE | SERVICE_STOP,

SERVICE_KERNEL_DRIVER,

SERVICE_DEMAND_START,

SERVICE_ERROR_IGNORE,

"C:\\example.sys",

NULL, NULL, NULL, NULL, NULL);

if(!hService)

{

hService = OpenService(hSCManager, "Example",

SERVICE_START | DELETE | SERVICE_STOP);

}

if(hService)

{

printf("Start Service\n");

StartService(hService, 0, NULL);

printf("Press Enter to close service\r\n");

getchar();

ControlService(hService, SERVICE_CONTROL_STOP, &ss);

DeleteService(hService);

CloseServiceHandle(hService);

}

CloseServiceHandle(hSCManager);

}

return 0;

}

与设备驱动通讯,代码如下:

int _cdecl main(void)

{

HANDLE hFile;

DWORD dwReturn;

hFile = CreateFile("\\\\.\\Example",

GENERIC_READ | GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, 0, NULL);

if(hFile)

{

WriteFile(hFile, "Hello from user mode!",

sizeof("Hello from user mode!"), &dwReturn, NULL);

CloseHandle(hFile);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: