传递给系统调用的数据区域太小
在一个dll里面封装了一个读取PDA唯一序列号的函数接口,最近调试的时候发现老是会出现“传递给系统调用的数据区域太小”,代码如下:
GUID bApplicationData1 = { 0x8d552bd1, 0xe232, 0x4107, { 0xb7, 0x2d, 0x38, 0xb6, 0xa4, 0x72, 0x64, 0x39 } };
DWORD cbApplicationData1 = sizeof (bApplicationData1);
DWORD g_cbDeviceID;
BYTE g_bDeviceID[GETDEVICEUNIQUEID_V1_OUTPUT];
CString tmp;
memset(g_bDeviceID,0,GETDEVICEUNIQUEID_V1_OUTPUT*sizeof(BYTE));
hr = GetDeviceUniqueID (reinterpret_cast<LPBYTE>(const_cast<LPGUID>(&bApplicationData1)),
cbApplicationData1,
GETDEVICEUNIQUEID_V1,
g_bDeviceID,
&g_cbDeviceID);
hr的返回值有时候是正常的,有时候返回“传递给系统调用的数据区域太小”,不知道大家有没有遇到过这种问题。