2)BOOL *_Deinit(DWORD hDeviceContext);hDeviceContext:*_Init的返回值。整个驱动中最后执行。用来停止和卸载设备。由DeactivateDevice触发设备管理器调用。成功返回TRUE。
这里面的函数参数DWORD hDeviceContext并没有在函数体里面出现,怎么回事的?它这样写有什么用?在C语言里面如果在函数体里面没有使用函数参数会编译错误的吧?这是个弱智可笑的问题,但是我在书里找不到答案,还是请大虾们指点一下我,谢谢。
hDeviceContext 是*_Init()返回的值。
hDeviceContext 因驱动而异,有的是指向某些数据结构的数组,有的仅仅是个没有实际用途的非零常数。具体就要看驱动的需求和开发者的习惯了。
如果有兴趣可以看一下Wince自带的串口驱动
楼上回答的很正确。这个值其实是可以由开发人员控制的。