标签:
DeviceIoControl 发送控制代码到指定设备驱动程序 参数解释: hDevice Long,设备句柄 dwIoControlCode Long,应用程序调用驱动程序的控制命令,就是IOCTL_XXX IOCTLs。 lpInBuffer Any,应用程序传递给驱动程序的数据缓冲区地址。 nInBufferSize Long,应用程序传递给驱动程序的数据缓冲区大小,字节数。 lpOutBuffer Any,驱动程序返回给应用程序的数据缓冲区地址。 nOutBufferSize Long,驱动程序返回给应用程序的数据缓冲区大小,字节数。 lpBytesReturned Long,驱动程序实际返回给应用程序的数据字节数地址。 lpOverlapped OVERLAPPED,这个结构用于重叠操作。针对同步操作,请用ByVal As Long传递零值。 通知消息宏定义方法: CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成: DeviceType(设备类型,高16位(16-31位)), Access(访问限制,14-15位), Function(功能2-13 位), Method(I/O访问内存使用方式)。 DeviceType 定义为给定的设备IOCTL的类型。 微软使用的值的范围是0-0X7FFF;值0X800-0XFFF是由程序员自己定义。 下面的设备类型由系统定义的: Method I/O访问内存使用方式 METHOD_BUFFERED 使用缓冲区方式操作 METHOD_IN_DIRECT 使用直接写方式操作 METHOD_OUT_DIRECT 使用直接读方式操作 METHOD_NEITHER 使用其他方式操作 Access 访问权限 下表显示了此参数的可能标志。该FILE_ACCESS_ANY通常是正确的值。 FILE_ANY_ACCESS Request all access. FILE_READ_ACCESS Request read access. Can be used with FILE_WRITE_ACCESS. FILE_WRITE_ACCESS Request write access. Can be used with FILE_READ_ACCESS. Return Values(返回值) None. Remarks(备注) 宏可以被用来定义IOCTL和FSCTL功能控制代码。所有的IOCTL必须以这种方式定义,以确保由微软,OEM厂商,和IHV使用的值不重叠。
标签:
原文地址:http://www.cnblogs.com/IMyLife/p/4826170.html