Device Update for IoT Hub のエラー コード
このドキュメントでは、さまざまなデバイス更新コンポーネントのエラー コードの表を示します。
エラーコードをスローする可能性のある主なクライアント側コンポーネントは、デバイス更新エージェントと配信最適化エージェントの 2 つです。 エラー コードは、デバイス更新コンテンツ サービスからも取得されます。
デバイス更新エージェント
ResultCode と ExtendedResultCode
Device Update for IoT Hub のコア PnP インターフェイスは ResultCode
および ExtendedResultCode
を報告します。これらを使用してエラーを診断することができます。 Device Update Core PnP インターフェイスの詳細については、「デバイスの更新とプラグ アンド プレイ」を参照してください。 Device Update エージェントの ResultCode と ExtendedResultCodes の既定の意味について詳しくは、Device Update の GitHub リポジトリをご覧ください。
ResultCode
は、一般的な状態コードであり、ExtendedResultCode
は、エンコードされたエラー情報を含む整数です。
ExtendedResultCode
は、PnP インターフェイスでは符号付き整数として表されます。 ExtendedResultCode
をデコードするには、符号付き整数を符号なし 16 進数に変換します。 ExtendedResultCode
では、最初の 4 バイトのみが使用され、その形式は F
FFFFFFF
です。ここで、最初のニブルはファシリティ コード、残りのビットはエラー コードです。
ファシリティ コード
ファシリティ コード | 説明 |
---|---|
D | DO SDK から発生したエラー |
E | エラー コードは errno です |
次に例を示します。
ExtendedResultCode
は -536870781
です
-536870781
の符号なし 16 進数表現は FFFFFFFF E0000083
です。
Ignore | ファシリティ コード | エラー コード |
---|---|---|
FFFFFFFF | E | 0000083 |
16 進数の 0x83
は 10 進数の 131
であり、ENOLCK
の errno 値です。
配信最適化エージェント
次の表は、デバイス更新クライアントの配信最適化 (DO) コンポーネントに関連するエラー コードの一覧です。 DO コンポーネントは、更新プログラムのコンテンツを IoT デバイスにダウンロードする役割を担います。
DO エラー コードは、API 呼び出しへの応答としてスローされた例外を調べると取得できます。 すべてのエラー コードは、0x80D0 プレフィックスによって識別できます。
エラー コード | 文字列エラー | 種類 | 説明 |
---|---|---|---|
0x80D01001L | OM_E_NO_SERVICE | 該当なし | 配信最適化がサービスを提供できませんでした |
0x80D02002L | DO_E_DOWNLOAD_NO_PROGRESS | ジョブのダウンロード | 指定された期間内にファイルのダウンロードが進行しませんでした |
0x80D02011L | DO_E_UNKNOWN_PROPERTY_ID | ジョブのダウンロード | SetProperty() または GetProperty() が、不明なプロパティ ID で呼び出されました |
0x80D02012L | DO_E_READ_ONLY_PROPERTY | ジョブのダウンロード | 読み取り専用プロパティで SetProperty() を呼び出すことができません |
0x80D02013L | DO_E_INVALID_STATE | ジョブのダウンロード | 要求されたアクションは、現在の状態では許可されません。 ジョブが取り消されたか、転送が完了している可能性があります。 現在の状態は読み取り専用です。 |
0x80D02018L | DO_E_FILE_DOWNLOADSINK_UNSPECIFIED | ジョブのダウンロード | ダウンロード シンク (ローカル ファイルまたはストリーム インターフェイス) が指定されていないため、ダウンロードを開始できません |
0x80D02200L | DO_E_DOWNLOAD_NO_URI | IDODownload インターフェイス | URI を指定せずにダウンロードが開始されました |
0x80D03805L | DO_E_BLOCKED_BY_NO_NETWORK | 一時的な問題 | ネットワーク接続が失われたため、ダウンロードが一時停止されました |
0 00 00000 Total 4 bytes (32 bits)
- -- -----
| | |
| | |
| | +--------- Error code (20 bits)
| |
| +------------- Component/Area code (8 bits)
|
+--------------- Facility code (4 bits)
コードの解析の詳細については、デバイス更新エージェントの結果コードと拡張結果コードまたはカスタム コンテンツ ハンドラーの実装に関するページを参照してください。
デバイス更新コンテンツサービス
次の表は、デバイス更新サービスのコンテンツ サービス コンポーネントに関連するエラー コードの一覧です。 コンテンツ サービス コンポーネントは、更新コンテンツのインポートする役割を担います。 プロキシ更新のインポートに関するその他のトラブルシューティング情報も利用できます。
エラー コード | 文字列エラー | 次のステップ |
---|---|---|
UpdateAlreadyExists | 同じ ID の更新が既に存在します。 | Device Update for IoT Hub のこのインスタンスにまだインポートされていない更新をインポートしていることを確認します。 |
DuplicateContentImport | 同じコンテンツが同時に複数回インポートされています。 | Device Update for IoT Hub のこのインスタンスにまだインポートされていない更新をインポートしていることを確認します。 |
CannotProcessImportManifest | インポート マニフェストの処理でエラーが発生しました。 | インポート マニフェストの正しい書式設定については、「インポートの概念」と「更新のインポート」のドキュメントを参照してください。 |
CannotDownload | インポート マニフェストをダウンロードできません。 | インポート マニフェスト ファイルの URL がまだ有効であることを確認してください。 |
CannotParse | インポートマニフェストを解析できません。 | 更新のインポートに関するドキュメントで定義されているスキーマと照合して、インポート マニフェストの正確性を確認してください。 |
UnsupportedVersion | インポート マニフェスト スキーマ バージョンがサポートされていません。 | インポート マニフェストが、更新のインポートに関するドキュメントで定義されている最新のスキーマを使用していることを確認してください。 |
制限を超えたため、更新のインポートでエラーが発生しました。 | 追加の更新プログラムのプロバイダーをインポートできません。 | Device Update for IoT Hub のインスタンスで許可されているさまざまなプロバイダー数の制限に達しました。 インスタンスから更新をいくつか削除してから、もう一度お試しください。 |
制限を超えたため、更新のインポートでエラーが発生しました。 | 指定されたプロバイダーの追加の更新プログラム名をインポートできません。 | Device Update for IoT Hub のインスタンスで 1 つのプロバイダーに許可されているさまざまな名前の数の制限に達しました。 インスタンスから更新をいくつか削除してから、もう一度お試しください。 |
制限を超えたため、更新のインポートでエラーが発生しました。 | 指定されたプロバイダーと名前の、追加の更新プログラムのバージョンをインポートできません。 | Device Update for IoT Hub のインスタンスで 1 つのプロバイダーと名前に許可されているさまざまなバージョンの数の制限に達しました。 その名前の更新をいくつか、インスタンスから削除してから、もう一度お試しください。 |
制限を超えたため、更新のインポートでエラーが発生しました。 | 指定された互換性を持つ追加の更新プロバイダーをインポートできません。 or 指定された互換性を持つ追加の更新名をインポートできません。 or 指定された互換性を持つ追加の更新バージョンをインポートできません。 |
インポート マニフェストで、互換性プロパティを定義するときに、Device Update for IoT Hub では、特定の互換性プロパティのセットに対して、単一プロバイダーと名前の組み合わせがサポートされることを忘れないでください。 同じ互換性プロパティを、複数のプロバイダー/名前の組み合わせで使用しようとすると、これらのエラーが表示されます。 この問題を解決するには、(互換性プロパティで定義されている) 特定のデバイスのすべての更新で、同じプロバイダーと名前が使用されていることを確認します。 |
CannotProcessUpdateFile | ソース ファイルの処理でエラーが発生しました。 | |
ContentFileCannotDownload | ソース ファイルをダウンロードできません。 | 更新ファイルの URL がまだ有効であることを確認してください。 |
SourceFileMalwareDetected | インポート中のファイルで、既知のマルウェア署名が検出されました。 | Device Update for IoT Hub は、複数の異なるメカニズムを使って、インポートされたコンテンツでマルウェアをスキャンします。 既知のマルウェア署名が特定されると、インポートは失敗し、一意のエラー メッセージが返されます。 エラー メッセージには、マルウェア署名の説明と、署名が検出された各ファイルのファイル ハッシュが含まれています。 ファイル ハッシュを使用して、フラグが設定されているファイルを的確に見つけ、マルウェア署名の説明を使用して、そのファイルでマルウェアを確認することができます。 インポート中のファイルからマルウェアを削除したら、インポート プロセスを再度開始できます。 |
SourceFilePendingMalwareAnalysis | インポート中のファイルで、マルウェアが存在する可能性がある署名が検出されました。 | Device Update for IoT Hub は、複数の異なるメカニズムを使って、インポートされたコンテンツでマルウェアをスキャンします。 既知のマルウェアと完全に一致しない場合でも、スキャン シグネチャにマルウェアの特性がある場合、インポートは失敗します。 この場合、一意のエラー メッセージが返されます。 エラー メッセージには、マルウェアの疑いがある署名の説明と、署名が検出された各ファイルのファイル ハッシュが含まれています。 ファイル ハッシュを使用して、フラグが設定されているファイルを的確に見つけ、マルウェア署名の説明を使用して、そのファイルでマルウェアを確認することができます。 インポート中のファイルからマルウェアを削除したら、インポート プロセスを再開できます。 ファイルにマルウェアが含まれないことが確実であるが、このエラーが引き続き表示される場合は、Microsoft サポートに問い合わせるのプロセスを使用してください。 |