I call DeviceIoControl function to get tap version,but it returned error, and 
GetLastError return 1.
  
 this is my code:
  
 int main(int argc, char* argv[])
{
  HANDLE hICDriver = 
CreateFile("\\\\.\\{E00D9A99-2A50-47F6-9B6C-FCD17739CCE5}", 
GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,      FILE_ATTRIBUTE_SYSTEM | 
FILE_FLAG_OVERLAPPED, NULL);
 if (hICDriver==INVALID_HANDLE_VALUE)
 {
  printf("打开设备失败 ErrorCode=%d\n", GetLastError());
  
  goto err;
 }
 printf("成功打开设备\n");
  
 ULONG info[3];
 DWORD len;
 memset(info, 0, sizeof(ULONG)*3);
  if (!DeviceIoControl (hICDriver, TAP_IOCTL_GET_VERSION,
    &info, sizeof (info),
    &info, sizeof (info), &len, NULL))
 {
  printf("DeviceIoControl ErrorCode=%d\n", GetLastError());
  
  goto err;
 }
  
err:
  Sleep(5000);
  return 0;
}

Reply via email to