|
定义:
#define IO_OPEN_COM CTL_CODE(FILE_DEVICE_COMSPY,0x080A,METHOD_BUFFERED, \
FILE_ANY_ACCESS)
想用下面传递串口号"\\??\\COM1"
DeviceIoControl(m_hDevice,
IO_OPEN_COM,
sz1,
12,
NULL,
0,
&dwReturn,
NULL);
也就是说如何让sz1="\\??\\COM1"; 注意我想要的是正解的赋值法,如sz1定义成什么类型,如何给其赋???????????????
同时对应的驱动中如何正确的取出这个值??????????????
我现在是这样做的:
应用程序:
TCHAR sz1[256] = {0};
int m_Port;
m_Port=1;
CString s;
s.Format("\\??\\COM%d",m_Port);
_tcscpy(sz1,s);
驱动程序:
RtlInitUnicodeString(&usDeviceToFilter,(PWCHAR)(LPCTSTR)Irp->AssociatedIrp.SystemBuffer);
可是不好用.如换成
RtlInitUnicodeString(&usDeviceToFilter,L"\\??\\COM1");就可以了.
说明我没有使用正确的将L"\\??\\COM1"传入或传来后我用(PWCHAR)(LPCTSTR)Irp->AssociatedIrp.SystemBuffer取得不对.
求教如何才是正确的交互方法?????????????????????????????
|
|