DeviceIoControl中哪个参数是存放上位机要发送数据的缓存区?哪个参数是上位机接收数据的缓存区?看了一个程序怎么接收发送缓存区都是在同一个参数的位值

解决方案 »

  1.   

    。。[in,out]参数吧,所以既当输入参数,也当输出参数
      

  2.   

    这取决于驱动程序的设计,很多时候驱动在实现IRP_MJ_DEVICE_CONTROL的派遣函数时,针对某个IOCTL code的处理,需要更多的参数,就往往将inputbuffer设计为一个额外的参数结构体传入驱动,而将deviceiocontrol的outputbuffer始终作为实际收发数据的用户数据缓冲区
      

  3.   

    那inputbuffer作为额外的参数结构体起什么作用呢?我是刚学不太懂,谢谢指教。
      

  4.   


    dwResult =DeviceIoControl(m_hHandle, FT_CONTROL_GET_PING_IP, 
    NULL, 
    0, 
    pBuffer, 
    nSize, 
    &dwReturnDataLength, 
    NULL); FT_CONTROL_GET_PING_IP 这个是控制码
    pBuffer 这个是输入缓冲区,同时也是输出缓存区,如果要传结构体,可以把结构体放置在这里nSize 输入缓冲区的大小
    dwReturnDataLength 输出缓冲区的大小