【解決方法】ターゲットの Windows 7 PC に virtualserial2 サンプル UMDF ドライバーをインストールできない

プログラミングQA


私の開発マシンとテスト マシンは Windows 7 オペレーティング システムを搭載した 64 ビット Windows システムです「プロバイダーは “Microsoft” ではありません。INF を作成した組織でなければなりません」というエラーが表示されたため、.inx ファイルの次の行を MSFTUMDF=Microsoft から MSFTUMDF=Sample に変更すると、正常にコンパイルされました。

次に、次のプロセスに従って、ターゲット マシンにドライバーをインストールします。

1) VirtualSerial2um.cer ファイル VirtualSerial2um.inf を Windows-driver-samples-master\serial\VirtualSerial2\ComPort\x64\Debug & devcon.exe から C:\Program Files\Windows Kits\10\Tools\x64 にコピーしました。ターゲット デバイスの C:\ ドライブの Sample フォルダー。

2) 次に、ターゲット マシンで Internet Explorer を開き、[インターネット オプション]->[コンテンツ]->[証明書]->[インポート]に移動してから、VirtualSerial2um.cer ファイルを選択し、証明書をインポートしました。

3) 次に、ターゲット マシンでコマンド プロンプトを管理者として開き、Sample フォルダーを参照して、次のコマンドを入力しました。

devcon インストール virtualSerial2um.inf UMDF\Virtual_1

次に、コマンドプロンプトで次のように表示されます。
デバイス ツリー エントリが作成されました
Devcon に失敗しました。

デバイス マネージャーでは、不明なデバイスの下に COMn (n は com ポート番号) が表示されますが、ハイパー ターミナルを開くと、COM ポートのドロップダウン リストに COMn が表示されません。

devcon のインストールが失敗する理由と、ドライバーがデバイス ツリーに登録されていると表示されているのに、ポートではなく不明なデバイスに表示される理由がわかりません。

これは VirtualSerial2um.inf ファイルの内容です

;
; Copyright (C) Microsoft Corporation, All Rights Reserved.
;
; VirtualSerial.inf
;
;インストールに関する注意事項:
; 「devcon install VirtualSerial2um.inf UMDF\VirtualSerial2um」と入力してインストールします

[Version]

Signature=”$Windows NT$”
クラス=ポート
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
プロバイダ=%MSFTUMDF%
CatalogFile=WUDF.cat
DriverVer=05/30/2016,19.7.52.160

[Manufacturer]

%MSFTUMDF%=マイクロソフト、NTx86

[Microsoft.NTx86]

%VirtualSerialDeviceName%=VirtualSerial_Install,UMDF\VirtualSerial2um

[SourceDisksFiles]

Virtualserial2um.dll=1

[SourceDisksNames]

1 = %MediaDescription%

; =================== UMDF 仮想シリアル デバイス ============================ ======

[VirtualSerial_Install.NT]

CopyFiles=UMDriverCopy

[VirtualSerial_Install.NT.hw]

AddReg=SetDeviceType_AddReg

[VirtualSerial_Install.NT.Services]

AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[VirtualSerial_Install.NT.Wdf]

UmdfService = VirtualSerial、VirtualSerial_Install
UmdfServiceOrder = VirtualSerial
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfFsContextUsePolicy = CannotUseFsContexts

[VirtualSerial_Install]

UmdfLibraryVersion=2.15.0
ServiceBinary=%12%\UMDF\Virtualserial2um.dll

[WUDFRD_ServiceInstall]

DisplayName = %WudfRdDisplayName%
サービスタイプ = 1
開始タイプ = 3
エラー制御 = 1
ServiceBinary = %12%\WUDFRd.sys

[SetDeviceType_AddReg]

HKR,,DeviceType,0x10001,0x0000001b ; 0x1b = ファイル_デバイス_シリアル_ポート

[DestinationDirs]

UMDriverCopy=12,UMDF ; ドライバー\UMDF にコピー

[UMDriverCopy]

Virtualserial2um.dll

; =================== ジェネリック ============================= ====

[Strings]

MSFTUMDF=”サンプル”
MediaDescription=”Microsoft サンプル ドライバー インストール メディア”
WudfRdDisplayName=”Windows Driver Foundation – ユーザー モード ドライバー フレームワーク リフレクター”
VirtualSerialDeviceName=”Microsoft VirtualSerial サンプル (UMDF 2)”

私が試したこと:

1) VirtualSerial2um.cer ファイル VirtualSerial2um.inf を Windows-driver-samples-master\serial\VirtualSerial2\ComPort\x64\Debug & devcon.exe から C:\Program Files\Windows Kits\10\Tools\x64 にコピーしました。ターゲット デバイスの C:\ ドライブの Sample フォルダー。

2) 次に、ターゲット マシンで Internet Explorer を開き、[インターネット オプション]->[コンテンツ]->[証明書]->[インポート]に移動してから、VirtualSerial2um.cer ファイルを選択し、証明書をインポートしました。

3) 次に、ターゲット マシンでコマンド プロンプトを管理者として開き、Sample フォルダーを参照して、次のコマンドを入力しました。

devcon インストール virtualSerial2um.inf UMDF\Virtual_1

次に、コマンドプロンプトで次のように表示されます。
デバイス ツリー エントリが作成されました
Devcon に失敗しました。

デバイス マネージャーでは、不明なデバイスの下に COMn (n は com ポート番号) が表示されますが、ハイパー ターミナルを開くと、COM ポートのドロップダウン リストに COMn が表示されません。

解決策 1

これが私が仕事をする方法です。

0. cd でビルド フォルダーに移動します

C:\Temp\VirtualSerial\ComPort\x64\Release\virtualserial>

1. 最初に devcon コマンドを使用してドライバーをインストールしますが、失敗します。
Devconコマンドは

devcon install virtualserial.inf UMDF\VirtualSerial

2. デバイス マネージャーを確認すると、不明なデバイス、または感嘆符付きの COM# として表示されます。

3. それを右クリック -> ドライバーの更新 -> コンピューターでドライバー ソフトウェアを参照 -> コンピューターで利用可能なドライバーのリストから選択

4. 今、私のマシンに表示されます

Microsoft VirtualSerial User-Mode Device Sample

その下に表示されます

This driver is digitally signed

.

5. ここで、[ディスク使用]をクリックして、サンプル内の virtualserial.inf ファイルのいずれかを参照すると、次のように変わります。

This driver is not digitally signed

あなたはこれをしたくないので、これをした場合は、キャンセルして手順 3 に戻ります。

6.[次へ]をクリックすると、

Microsoft VirtualSerial User-Mode Device Sample (COM#)

デバイスマネージャーのポートの下。

このドライバーは複数回インストールでき、そのたびに異なるポート番号が提供されることに注意してください。

読んでいる人のためのデバッグへのいくつかの追加手順。

1. x64 システムを使用している場合は、x64 を構築していることを確認してください。 デバッグとリリースの両方が機能するようになりました

2. Release または Debug フォルダー内の virtualserial フォルダーから devcon を実行していることを確認します。 このフォルダーには WudfUpdate_01011.dll ファイルが含まれているため

3. このドライバーがデジタル署名されていることを示すことができない場合は、ここから Digicert ユーティリティを取得します。 https://www.digicert.com/util/DigiCertUtil.exe Internet Explorer のインストール方法の横に感嘆符が表示される場合があります。 それを右クリックすると、digicert が問題を説明し、修正を提案します。 または、digiert を使用して、それぞれのリリース フォルダーから virtualserial.cer ファイルをインポートすることもできます。

4. 最後に、次の場所にある devcon ログを確認します。

C:\Windows\INF\setupapi.dev.log

WHQL 署名を探しています。

5.最後に、最初に変更を加えずにプロジェクトをビルドしてインストールしてみてください。もちろん、このプロジェクトについて話しています。 Windows-driver-samples/serial/VirtualSerial at master · Microsoft/Windows-driver-samples · GitHub[^]

情報を提供していただきありがとうございます。 これを質問からの説明ページに変える必要があります。

コメント

タイトルとURLをコピーしました