エラー定数
Windowsポータブル デバイスメソッドは、さまざまな HRESULT エラー コードを返すことができます。 Windowsポータブル デバイスに固有のものもあれば、デバイスの構築に使用される他の SDK または移植キットによって定義されているものもあります。 このセクションでは、配信元別に整理して返すことができるさまざまなエラー コードについて説明します。
WPD は、次のエラー定数を定義します。
定数/値 | 説明 |
---|---|
|
デバイス接続は、 IPortableDevice::Open の以前の呼び出しによって既に開かれています。 |
|
デバイスは入力に応答しなくなります。 |
|
デバイス接続は、 IPortableDevice::Open の呼び出しによってまだ開かれていません。 |
|
インターフェイス オブジェクトは既にデバイス インターフェイスにアタッチされています。 |
|
インターフェイス オブジェクトは、 IPortableDeviceService インターフェイスに既にアタッチされています。 |
|
インターフェイス オブジェクトがデバイスにアタッチされていません。 |
|
インターフェイス オブジェクトが IPortableDeviceService インターフェイスにアタッチされていません。 通常、これは、アプリケーションが IPortableDevice::Close を呼び出した後に、IPortableDeviceServiceCapabilities などのアタッチされたインターフェイスのメソッドにアクセスしようとした場合に返されます。 |
|
IStream::Commit は、デバイス上にデータを含むオブジェクトを作成するときに呼び出されませんでした。 |
|
サービス接続は、 IPortableDevice::Open の以前の呼び出しによって既に開かれています。 |
|
IPortableDeviceServiceMethods::Invoke または IPortableDeviceServiceMethods::InvokeAsync のメソッド パラメーターが正しい順序で設定されていません。 パラメーターは、 WPD_PARAMETER_ATTRIBUTE_ORDERで指定された順序で設定する必要があります。 |
|
IPortableDeviceService::Open の呼び出しによってサービス接続がまだ開かれていません。 |
|
携帯ショートメール メッセージに指定された受信者が無効です。 |
|
携帯ショートメール メッセージに指定されたメッセージの本文が無効です。 |
|
携帯ショートメール サービスは使用できません。 |
Windows Media Rights Manager SDK で定義されているエラーが発生することがあります。 その SDK によって定義されたエラーの一覧は、MSDN ライブラリで提供されます。 ただし、次のWindows Media Rights Manager SDK エラーは、このドキュメントには含まれていませんでした。
定数/値 | 説明 |
---|---|
|
DRM で保護されたコンテンツにアクセスするときにデバッグすることはできません。 |
|
コンテンツはライセンスされていません。 |
WPD は標準Windowsエラー コードをアプリケーションに返す場合があります。 次の表に、WPD デバイスを使用する場合に最もよく使用される標準Windowsエラー コードと一般的なエラー条件を示します。
Win32 エラー コードは、HRESULT_FROM_WIN32 マクロを使用して HRESULTs に変換されます。
定数/値 | 説明 |
---|---|
|
読み取り専用オブジェクトまたはプロパティを変更または削除できないことを示すために使用できます。 デバイス サービスの階層外にある子オブジェクトなど、オブジェクトがスコープ外でアクセスされていることを示すために使用できます。 WPD コマンドをデバイスに送信するために、アプリケーションにアクセス権がないことを示すために使用できます (たとえば、デバイスへのアクセス制御がグループ ポリシーによって制限されている場合)。 |
|
データ配列内の要素の数が制限 (ULONGLONG) を超えたことを示すために使用できます。 |
|
デバイスが別の操作の処理中にビジー状態であることを示すために使用できます。 アプリケーションは、再試行する前に、その操作が完了するまで待機する必要があります。 |
|
WPD API で Cancel メソッドのいずれかを呼び出した場合など、キャンセルが原因でデバイスに送信されたコマンドが中止されました。 |
|
デバイスから無効なデータ パケットが受信されたことを示すために使用できます。 |
|
MTP/IP デバイスの場合は、デバイスが使用中であるため、接続の初期化に失敗したことを示します。 |
|
デバイスが切断されているか、取り外されています。 |
|
子を持つオブジェクトに対して非再帰的な削除が呼び出されたことを示すために使用できます。 アプリケーションでは、 IPortableDeviceContent::D elete で再帰的な削除フラグを使用する必要があります。 |
|
リソース データが予想されたときにデバイスがリソース データの送信に失敗したことを示すために使用できます (サムネイルやデバイス アイコンなど)。 これは通常、デバイス上のエラーを示します。 |
|
デバイスが切断または取り外されたことを示すために使用できます。 |
|
デバイスが応答を停止 (ハング) したか、デバイスで一般的なエラーが発生したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。 |
|
デバイスとの間で送受信されたデータを正しく解析できないことを示すために使用できます。 これは、デバイス側またはトランスポート エラーを示している可能性があります。 MTP ベンダー操作がデバイスに送信された場合、このエラーは、指定された操作パラメーターが有効な VARTYPE ではないことを示している可能性があります。 |
|
指定した VARTYPE が特定のプロパティに対して無効であることを示すために使用できます。 |
|
IPortableDeviceResources::GetStream を使用して読み取りモードで開かれたデバイス上のリソースに対して書き込み要求が行われたか、書き込みまたは作成用に開かれたリソースに対して読み取り要求が行われました。 |
|
非再帰的削除は、子を持つオブジェクトに対して呼び出されます。 |
|
アプリケーションによって指定されたパラメーターが無効です。 |
|
datetime プロパティの変換が失敗したことを示すために使用できます。 |
|
デバイスが応答を停止 (ハング) したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。 |
|
デバイスがプロパティをサポートしているが、そのプロパティ値が現在空または初期化されていないかどうかを示すために使用できます。 操作が完了したか取り消されたために、実行時間の長い操作の内部コンテキストが存在しなくなったことを示すために使用できます。 このような操作の例としては、一括プロパティ、オブジェクト列挙、転送、デバイス サービス メソッドの呼び出しなどがあります。 アプリケーションでは、最初から操作を再試行する必要があります。 指定したオブジェクトが存在しないことを示すために使用できます。 子オブジェクトは、デバイス サービス階層の外部にある可能性があります。 |
|
操作が正しく初期化されていないことを示すために使用できます。 これは通常、内部エラー、またはアプリケーションが古いデバイス ハンドルを使用していることを示します。 アプリケーションは、最初から操作を再試行するか、デバイスを再度開く必要があります。 |
|
プロパティまたはコマンドがデバイスでサポートされていないことを示すために使用できます。 |
|
デバイスに送信されたコマンドは、WPD API で Cancel メソッドのいずれかを呼び出すなど、手動の取 り消 しにより中止されました。 |
|
デバイスが正しい量のデータを送信しないことを示すために使用できます。 |
|
リソース (サムネイルやアイコンなど) がデバイスに存在しないことを示すために使用できます。 |
|
デバイスが応答を停止 (ハング) したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。 |
|
デバイスが応答を停止 (ハング) したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。 |
|
指定した形式がデバイスでサポートされていないことを示すために使用できます。 |
|
アプリケーションが要求された量のデータをデバイスに送信できなかったことを示すために使用できます。 |
|
MTP/IP デバイスの場合は、デバイスへの接続がタイムアウトしたことを示します。デバイスを手動で再接続する必要がある場合があります。 |
メディア転送プロトコルのエラー コード
メディア転送プロトコル (MTP) をサポートするデバイスは、次のエラー コードを返すことができます。 これらのエラー コードのほとんどは、MTP スタック内のエラー (MTP クラス ドライバーとデバイス間の通信) を意味しますが、エラー状況の診断に役立ちます。
HRESULT の説明 | MTP 応答コード | MTP 応答コードの説明 | 説明 |
---|---|---|---|
0x80042003 | 0x2003 | セッションが開かない | 操作のセッション ハンドルが現在開いているセッションではないことを示します。 これは、MTP スタック内の内部エラーを示します。 |
0x80042004 | 0x2004 | 無効な TransactionID | TransactionID が 0 であるか、有効なトランザクションを参照していないことを示します。 これは、MTP スタック内の内部エラーを示します。 |
0x80042005 | 0x2005 | 操作がサポートされていません | 操作コードが有効なコードと思われるが、デバイスが操作をサポートしていないことを示します。 これは、MTP スタック内の内部エラーを示します。 |
0x80042006 | 0x2006 | パラメーターがサポートされていません | 0 以外のパラメーターが操作と共に指定され、その操作にパラメーターが使用されていないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x80042007 | 0x2007 | 不完全な転送 | 転送が完了せず、転送されたデータを破棄する必要があることを示します。 この応答は、取り消されたトランザクションには対応していません。 |
0x80042008 | 0x2008 | StorageID が無効です | 操作で送信されたストレージ ID が、デバイスに存在する実際の有効なストアを参照していないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x80042009 | 0x2009 | ObjectHandle が無効です | オブジェクト ハンドルが、デバイスに存在する実際のオブジェクトを参照していないことを示します。 アプリケーションは、ストレージをもう一度列挙する必要があります。 |
0x8004200A | 0x200A | DeviceProp がサポートされていません | デバイス のプロパティ コードが有効なコードと思われるが、そのプロパティがデバイスでサポートされていないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004200B | 0x200B | ObjectFormatCode が無効です | 指定されたコンテキストで指定された特定のオブジェクト形式コードがデバイスでサポートされていないことを示します。 |
0x80042012 | 0x2012 | 部分的な削除 | 一部が書き込み保護されていたか、読み取り専用のストアにあったため、削除対象として示されたストレージのサブセットのみが実際に削除されたことを示します。 |
0x80042013 | 0x2013 | Microsoft Store利用できません | ストア (または指定されたオブジェクトを含むストア) が物理的に使用できないことを示します。 これは、メディアの放出によって発生する可能性があります。 この応答は、ストアがビジーであることを示すために使用されません。 |
0x80042014 | 0x2014 | サポートされていない形式による仕様 | 操作が特定の形式のオブジェクトに対してのみアクションを指定しようとしたが、その機能がサポートされていないことを示します。 この操作は、形式で指定せずに再試行する必要があります。 この性質の応答は、今後、指定された操作で形式で指定しようとすると、同じ応答が発生すると推測されます。 これは、MTP スタックの内部エラーを示します。 |
0x80042015 | 0x2015 | 有効な ObjectInfo がありません | ホストがオブジェクトを転送する前にデバイスに有効なオブジェクト情報を提供しなかったことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x80042016 | 0x2016 | 無効なコード形式 | データ コードの形式が正しくないため、無効であることを示します。 これは、MTP スタックの内部エラーを示します。 |
0x80042017 | 0x2017 | 不明なベンダー コード | デバイスは、ベンダー拡張コードを処理する方法を知りません。 |
0x8004201A | 0x201A | ParentObject が無効です | オブジェクトが有効な親オブジェクトではないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004201B | 0x201B | DeviceProp 形式が無効です | デバイス プロパティの設定が試行されたが、データのサイズまたは形式が正しくないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004201C | 0x201C | DeviceProp 値が無効です | デバイス プロパティを、デバイスで許可されていない値に設定しようとしたことを示します。 これは、MTP スタックの内部エラーを示します |
0x8004201E | 0x201E | セッションは既に開いています | セッションが既に開いている間にホストがセッションを開こうとしたことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004201F | 0x201F | トランザクションが取り消されました | 手動による取り消しにより操作が中断されたことを示すために使用できます。 |
0x80042020 | 0x2020 | サポートされていない宛先の仕様 | デバイスがホストによる宛先の指定をサポートしていないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004A801 | 0xA801 | Invalid_ObjectPropCode | デバイスがこのコンテキストで送信された オブジェクト プロパティ コード をサポートしていないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004A802 | 0xA802 | Invalid_ObjectProp_Format | デバイスに送信されるオブジェクト プロパティのサイズまたは種類がサポートされていないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004A803 | 0xA803 | Invalid_ObjectProp_Value | デバイスに送信されるオブジェクト プロパティが正しい型ですが、サポートされていない値が含まれていることを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004A804 | 0xA804 | Invalid_ObjectReference | 送信されたオブジェクト参照が無効であることを示します。 参照にデバイスに存在しないオブジェクト ハンドルが含まれているか、設定しようとしている参照がコンテキストでサポートされていません。 これは、MTP スタックのエラー、または古いストレージ オブジェクトを使用するアプリケーションが原因である可能性があります。 |
0x8004A806 | 0xA806 | Invalid_Dataset | この操作のデータ フェーズで送信されたデータセットが無効であることを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004A807 | 0xA807 | Object_Too_Large | 送信するオブジェクトをデバイスのファイル システムに格納できないことを示します。 記憶域に十分な領域がない場合、これは返されません。 |
0x8004A301 | 0xA301 | Invalid_ServiceID | 操作で送信されたサービス ID が、デバイスに存在する実際の有効なサービスを参照していないことを示します。 これは、MTP スタックの内部エラーを示します。 |
0x8004A302 | 0xA302 | Invalid_ServicePropCode | デバイスがこのコンテキストで送信されたサービス プロパティ コードをサポートしていないことを示します。 これは、MTP スタックの内部エラーを示します。 |
必要条件
要件 | 値 |
---|---|
ヘッダー |
|