問題タブ [setupapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2606 参照

windows - Windows SetupAPI を使用して USB デバイス記述子を取得する

SetupAPI関数(のような)でUSBデバイス記述子を取得できるかどうか疑問に思っていましたSetupDiGetDeviceRegistryPropertyか? ありがとうございました!

編集

これまでのところ、Windows のフレンドリ名のみを受け取ることができます。

0 投票する
1 に答える
1331 参照

c++ - デバイスがユーザーによって明示的に無効にされているかどうかを知る方法は?

次の図に示すように、デバイス マネージャーを使用して、ユーザーは明示的にデバイスを有効/無効にすることができます。

ここに画像の説明を入力

特定のデバイスについて、現在ユーザーが無効/有効な状態にあるかどうかを知りたいです。

私は次のアプローチを試しました

  1. CM_Get_DevNode_Status(&status, &problem, data.DevInst, 0);の存在がDN_STARTED、またはそれDN_DRIVER_LOADEDを教えてくれることを望んでいました。ただし、デバイスが接続/切断されたときに、ドライバーが OS によってロード/アンロードされている場合でも、これらはゼロになる可能性があります。たとえば、デバイスが有効で、ドライバーがロードされている場合などです。DN_STARTEDになりますが1、デバイスを切断すると、デバイスのエントリがデバイス マネージャーから削除される前にゼロに設定されます。
  2. SetupDiGetDeviceRegistryProperty(..., SPDRP_INSTALL_STATE, ...)の状態はCM_INSTALL_STATE_INSTALLED、デバイスが有効になっていることを意味するはずですが。ただし、この関数は、無効なデバイスの場合でもこの状態を返します。
  3. WMIを使えば必要な情報は取得できましたが、PowerShellではwmiを使いました。ネイティブの C++ で実装するのは非常に難しいため、wmi は使用したくありません。次のクエリを使用しました。

    Select Name, Availability, ConfigManagerErrorCode, ConfigManagerUserConfig from Win32_PnPEntity where Name = 'NVIDIA Quadro M1000M'

上記のクエリの ConfigManagerErrorCode は、22 に設定されている場合、デバイスが無効になっていることを意味し、21 は Windows がデバイスを削除していることを意味します

非 wmi ソリューションを探しています。

0 投票する
1 に答える
1203 参照

c++ - 未解決の外部シンボル _DEVPKEY_Device_BusReportedDeviceDesc

私のマシンに接続されているデバイスの場合、デバイス プロパティのBus Reported Device Descriptionを取得したいと考えています。この目的のために、 Setup API の関数 SetupDiGetDeviceProperty を使用ます。devpkey.hでDEVPKEY_Device_BusReportedDeviceDescという定義を見つけまし

しかし、DEVPKEY_Device_BusReportedDeviceDesc を使用すると、リンク中に未解決の外部シンボル _DEVPKEY_Device_BusReportedDeviceDesc受け取ります。

これが私のコードです(問題を再現するための最小限のコードのみが含まれています):

完全なエラー コードは次のとおりです。

エラー LNK2001: 未解決の外部シンボル _DEVPKEY_Device_BusReportedDeviceDesc

この問題を解決するにはどうすればよいですか?