none
WM_DEVICECHANGEが通知されない??? RRS feed

  • 質問

  • WM_DEVICECHANGEメッセージを使ってモデムポートが解放されるタイミングを知りたいと思っています。以下の様な手段でシリアルポートが解放される時の通知を待ちました。

    case WM_DEVICECHANGE:
       switch(wParam){
        case DBT_DEVICEREMOVECOMPLETE:
         pdbh=(DEV_BROADCAST_HDR *)lParam;
         switch(pdbh->dbch_devicetype){
          case DBT_DEVTYP_PORT:
           pdbp=(DEV_BROADCAST_PORT *)lParam;
           MessageBox(hDlg,pdbp->dbcp_name,"WM_DEVICECHANGE",MB_OK);
           break;
         }
         break;
       }
       return TRUE;

    しかし、ポート配下(デバイスマネージャで見た場合)の通信ポートの解放は通知されるのに、モデム配下のモデムポートの解放は通知されません。USBの抜けを検出して、シリアルポートの解放を行う様にしたいと思っています。

    モデムポート解放のタイミングを知る良い方法は無いでしょうか?

    (通信ポートの破棄のタイミングで代用できない理由があり、代用は不可です。)

    2010年11月30日 2:34

回答