問題タブ [device-manager]
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.
networking - 低速のインターネット接続では、ネットワーク アダプターを強制的にリセットする必要がありますか?
コンピュータは、イーサネット経由でモデムに直接接続されています。起動時のオンライン速度テストは、一貫して 10 Mb/s です。これは、私のサービスが想定している (50+) よりも大幅に少ないです。イーサネット アダプターを無効にして有効にするとすぐに、60+ Mb/s で別の速度テストを実行できます。この時点で、接続は安定しているようです。
追加情報: イーサネット アダプターは Realtek PCIe GBE ファミリー コントローラーです。ドライバーは最新です。ドライバーのロールバックを試みました。古いモデムを試しました。DNSのフラッシュ、winsockのリセット、IPのリセットを試みました。アダプタの速度をオート ネゴシエーションから 100 フルに変更してみました。
私は何も持っていません。当分の間、ブート後の遅延でアダプターをリセットするバッチ ファイル (devmanview.exe を使用) を取得しましたが、より洗練されたソリューションが必要です。私は ISP サポートと陽気な会話をしましたが、これはもはや彼らの台本にないため、彼らは役に立たないことに気付きました。
助けてくれてありがとう。
windows - Windows デバイス: UVC ウェブカメラの特定の IMFActivate* の「場所」文字列を取得します
Windows の [デバイス マネージャー] に移動し、リスト内の (ほぼ) 任意のデバイスをクリックすると、[全般] タブの 1 つの情報が [場所] と呼ばれます。これは、次のいずれかの文字列です。
- 「NVIDIA GeForce GTX 1080 で」のように人間が読める形式
- 「ロケーション 0 (Internal High Definition Audio Bus)」や「PCI バス 9、デバイス 0、機能 0」など、ある程度は便利です。
- 「Port_#0004.Hub_#0015」または「0009.0000.0000.004.000.000.000.000.000」のような USB の場所
この情報は、Windows の統合デバイス プロパティ モデルAPI を通じて入手できます。
私が探しているのは、特定のIMFActivate
オブジェクトからその情報を取得することです。
そうする方法はありますか?そのアクティベーション オブジェクトから「デバイス」情報を取得する方法が見つかりません。私が持っている唯一のデータは「シンボリックリンク」(私の場合、この文字列 : \\?\usb#vid_04b4&pid_8888&mi_00#9&4fe28be&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global
) ですが、そのリンクの形式は「場所」に表示される文字列とはまったく異なります。
IMFActivate
したがって、私の質問:オブジェクトを指定して、デバイスの「場所」文字列を取得する方法は?
アップデート
setup-api 関数で認識可能なデバイス ID 文字列に提供されたシンボリック リンクを「変換」しIMFActivate
、「場所の文字列」を抽出するために使用しているコードを次に示します。
更新 2
devmgmt.msc
「サウンド、ビデオ、およびゲーム コントローラー」の下にある 3 つのオーディオ入力デバイスを次に示します。
- MS LifeCam Cinema (TM)、場所: 0000.0014.0000.013.003.000.000.000.000 (symlink:
\\?\SWD#MMDEVAPI#{0.0.1.00000000}.{751fe058-cef2-4d28-bbeb-e438981938d7}#{2eef81be-33fa-4800-9670-1cd474972c3f}
) - MS LifeCam Studio (TM)、場所: 0000.0014.0000.013.004.004.000.000.000 (symlink:
\\?\SWD#MMDEVAPI#{0.0.1.00000000}.{59267d2e-940b-45f5-8655-45372787bd85}#{2eef81be-33fa-4800-9670-1cd474972c3f}
) - SUB2r USB 3.0 HD ウェブカメラ、場所: 0009.0000.0000.004.000.000.000.000.000 (シンボリックリンク:
\\?\SWD#MMDEVAPI#{0.0.1.00000000}.{26a4f608-cbd8-4206-b958-d57ee6847153}#{2eef81be-33fa-4800-9670-1cd474972c3f}
)
3 つすべてが USB デバイスであり、呼び出し時に 3 つすべてがリストされますMFEnumDeviceSources
が、それらの「シンボリック リンク」はハードウェア デバイスに解決されません。
windows - デバイス マネージャーの詳細ページの各プロパティは何を意味しますか?
デバイス マネージャーのすべてのデバイスには、多数のプロパティが一覧表示されています (次の図を参照してください。一部のプロパティは緑色で強調表示されています)。各プロパティの意味を詳しく説明している情報源を見つけることができません。そのようなリソースがない場合、名前から意味を推測することしかできませんでした。
プログラムで各デバイスのステータスを取得して、(デバイス管理などから) 明示的に無効にされたデバイスのリストと、それらに関する詳細を取得しようとしています。これにより、デバイス マネージャーの詳細ページを調べることができました。
質問に答えるには、次のいずれかを実行できます。
- 一部のプロパティの意味を説明するリンクを参照してください。
- あなた自身が知っているいくつかの特性を説明してください。
どちらの場合も、ここですべての回答からコンパイルされたリストを作成します。これには、プロパティ名とその説明が含まれます。
c++ - デバイスがユーザーによって明示的に無効にされているかどうかを知る方法は?
次の図に示すように、デバイス マネージャーを使用して、ユーザーは明示的にデバイスを有効/無効にすることができます。
特定のデバイスについて、現在ユーザーが無効/有効な状態にあるかどうかを知りたいです。
私は次のアプローチを試しました
CM_Get_DevNode_Status(&status, &problem, data.DevInst, 0);
の存在がDN_STARTED
、またはそれDN_DRIVER_LOADED
を教えてくれることを望んでいました。ただし、デバイスが接続/切断されたときに、ドライバーが OS によってロード/アンロードされている場合でも、これらはゼロになる可能性があります。たとえば、デバイスが有効で、ドライバーがロードされている場合などです。DN_STARTED
になりますが1
、デバイスを切断すると、デバイスのエントリがデバイス マネージャーから削除される前にゼロに設定されます。SetupDiGetDeviceRegistryProperty(..., SPDRP_INSTALL_STATE, ...)
の状態はCM_INSTALL_STATE_INSTALLED
、デバイスが有効になっていることを意味するはずですが。ただし、この関数は、無効なデバイスの場合でもこの状態を返します。WMIを使えば必要な情報は取得できましたが、PowerShellではwmiを使いました。ネイティブの C++ で実装するのは非常に難しいため、wmi は使用したくありません。次のクエリを使用しました。
Select Name, Availability, ConfigManagerErrorCode, ConfigManagerUserConfig from Win32_PnPEntity where Name = 'NVIDIA Quadro M1000M'
上記のクエリの ConfigManagerErrorCode は、22 に設定されている場合、デバイスが無効になっていることを意味し、21 は Windows がデバイスを削除していることを意味します
非 wmi ソリューションを探しています。
windows - コマンドラインからWindows 10でデバイスを有効/無効にする
Windows を再起動するたびに無効にしてから再度有効にしたい特定のハードウェアがあります。その後、プログラムを実行するとともに、それを行うことになっているバッチスクリプトを作成しました。
devcon.exe
Windows スクリプトを書いた経験がまったくないので、そもそもこれが適切なアプリケーションかどうかはわかりません。
runMyWindows.exe
ただし、 Windows デバイス マネージャーに移動し、このデバイスを手動で無効にしてから再度有効にするまで、プログラムが正常に動作しないため、これらのコマンドがうまく機能しないことに気付きました。
このマシンには「管理者」グループに属するユーザーが 1 人しかいません。このスクリプトは、ファイルをダブルクリックする以外の特別な方法で実行していません.bat
。再起動の場合は、スタートアップ フォルダー ( C:\Users\oxxo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
) から実行されます。
Windows の起動時に自動的に実行されるバッチ スクリプト内でこれを適切に行う方法はありますか?