首页 > 程序开发 > 综合编程 > 安全编程 >

驱动笔记11:使用DeviceIoControl通信

2009-01-18

  文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://nokyo.blogbus.com/logs/34018521.html       在我昨日发布的《驱动学习笔记系列文章汇总(PDF)》第11.2节中,我没有给出使

文章作者:grayfox
作者主页:
http://nokyo.blogbus.com
原始出处:http://nokyo.blogbus.com/logs/34018521.html

在我昨日发布的《驱动学习笔记系列文章汇总(PDF)》第11.2节中,我没有给出使用DeviceIoControl通信的演示源码,附录中附带的程序是我尚未调试好的,因此没有达到通信的目的。

今天又认真阅读了下张帆的《Windows驱动开发技术详解》第7章的内容,并对它给出的示例程序多次调试,总算把这个通信过程给理解了,下面我们先来看看应用层程序的代码:

#include <windows.h>

#include <stdio.h>

#include <winioctl.h>

#include "..Ioctls.h"

#define SYMBOL_LINK "\\.\Test"

int main()

{

HANDLE hDevice = ::CreateFile(SYMBOL_LINK,

GENERIC_READ | GENERIC_WRITE,

0,

NULL,

OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL,

NULL );

if (hDevice == INVALID_HANDLE_VALUE)

{

printf("Failed to Open Device : %d ", ::GetLastError());

热点推荐