jnq

jnq

0个粉丝

11

问答

0

专栏

0

资料

jnq  发布于  2012-12-04 13:21:01
采纳率 0%
11个问答
3326

wince下检测SD设备插入拔出

 
下面是一段以SD卡插入和拔出,wince系统或者该动作。 该消息是由设备管理器发出的。

DWORD WINAPI Detect_Thread(LPVOID Lparam)
{
HANDLE h_file;
DWORD   dwFlags, dwSize;
MSGQUEUEOPTIONS msgopts;
HANDLE   rghWaits=NULL;
HANDLE   hReg;
BYTE   msgBuf[MAX_DEVCLASS_NAMELEN*2];
    DEVDETAIL  *pd = (DEVDETAIL*)msgBuf;
UINT c_count=0;
memset(&msgopts, 0, sizeof(msgopts));
    msgopts.dwSize = sizeof(msgopts);
    msgopts.dwFlags = 0;
    msgopts.dwMaxMessages = 0;
    msgopts.cbMaxMessage = MAX_DEVCLASS_NAMELEN;
    msgopts.bReadAccess = TRUE;

TCHAR SourceDir2[256];
TCHAR DestDir1[256];
ZeroMemory(SourceDir2,256);
ZeroMemory(DestDir1,256);
rghWaits = CreateMsgQueue(NULL, &msgopts);
hReg = RequestDeviceNotifications(&BLOCK_DRIVER_GUID, rghWaits, TRUE);
while(1){
  DWORD dwWaitCode;
        dwWaitCode = WaitForSingleObject(rghWaits,0);
  if ( dwWaitCode == WAIT_OBJECT_0 )
  {
   if (ReadMsgQueue(rghWaits, pd, MAX_DEVCLASS_NAMELEN, &dwSize, INFINITE, &dwFlags))
   {
    if ( memcmp(&pd->guidDevClass, &BLOCK_DRIVER_GUID, sizeof(GUID)) == 0 )
    {
     if (pd->fAttached)
     {
                  RETAILMSG(1,(TEXT("SD Card is insert\n")));
                  Sleep(2000);
     }
     else//SD
     {
                     RETAILMSG(1,(TEXT("SD Card Reject\n")));
     }
    }
    memset(msgBuf, 0, MAX_DEVCLASS_NAMELEN*2);
   }
  }
  Sleep(1000);
}
StopDeviceNotifications(hReg);
CloseHandle(rghWaits);
return 0;
}
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区