Microsoft WDKのToasterサンプルコードにClassInstallerの例(tostrcls.dll)が含まれています。これは、デバイスマネージャが表示する「デバイスフレンドリ名」をカスタマイズする機能を示しています。能力は、デバイスのハードウェアキーのFriendlyNameの値を変更することによって達成されます。 FriendlyNameを変更すると、Device Managerウィンドウ(devmgmt.msc)のクローズと再オープンがそのような変更を反映します。ここまでは順調ですね。FriendlyNameレジストリ値を変更した後に、Windowsデバイスマネージャを更新するデバイスの名前を強制的に表示する方法
ただし、Device Managerウィンドウに変更を即時に反映するように指示するには(ウィンドウを閉じずに再度開く必要があります)、余分なコードを実行する必要があります。最適な
spDevInstall.FlagsEx |= DI_FLAGSEX_PROPCHANGE_PENDING;
SetupDiSetDeviceInstallParams(Params->DeviceInfoSet,
Params->DeviceInfoData,
&spDevInstall);
作品
が、ませ:classInst.c
は次のようになります。 DI_FLAGSEX_PROPCHANGE_PENDING
は、デバイスにSTOP/STARTサイクルを実行させます。つまり、ドライバのToasterEvtDeviceReleaseHardwareとToasterEvtDevicePrepareHardwareが実行されます。私はこれが望ましくない副作用だと思う。
私の質問は明らかです。ドライバコードを気にせずにデバイスマネージャの表示を更新する方法はありますか?