次の方法で共有


エラー定数

Windowsポータブル デバイスメソッドは、さまざまな HRESULT エラー コードを返すことができます。 Windowsポータブル デバイスに固有のものもあれば、デバイスの構築に使用される他の SDK または移植キットによって定義されているものもあります。 このセクションでは、配信元別に整理して返すことができるさまざまなエラー コードについて説明します。

WPD は、次のエラー定数を定義します。

定数/値 説明
E_WPD_DEVICE_ALREADY_OPENED
0x802A0001
デバイス接続は、 IPortableDevice::Open の以前の呼び出しによって既に開かれています。
E_WPD_DEVICE_IS_HUNG
0x802A0006
デバイスは入力に応答しなくなります。
E_WPD_DEVICE_NOT_OPEN
0x802A0002
デバイス接続は、 IPortableDevice::Open の呼び出しによってまだ開かれていません。
E_WPD_OBJECT_ALREADY_ATTACHED_TO_DEVICE
0x802A0003
インターフェイス オブジェクトは既にデバイス インターフェイスにアタッチされています。
E_WPD_OBJECT_ALREADY_ATTACHED_TO_SERVICE
0x802A00CA
インターフェイス オブジェクトは、 IPortableDeviceService インターフェイスに既にアタッチされています。
E_WPD_OBJECT_NOT_ATTACHED_TO_DEVICE
0x802A0004
インターフェイス オブジェクトがデバイスにアタッチされていません。
E_WPD_OBJECT_NOT_ATTACHED_TO_SERVICE
0x802A00CB
インターフェイス オブジェクトが IPortableDeviceService インターフェイスにアタッチされていません。 通常、これは、アプリケーションが IPortableDevice::Close を呼び出した後に、IPortableDeviceServiceCapabilities などのアタッチされたインターフェイスのメソッドにアクセスしようとした場合に返されます。
E_WPD_OBJECT_NOT_COMMITED
0x802A0005
IStream::Commit は、デバイス上にデータを含むオブジェクトを作成するときに呼び出されませんでした。
E_WPD_SERVICE_ALREADY_OPENED
0x802A00C8
サービス接続は、 IPortableDevice::Open の以前の呼び出しによって既に開かれています。
E_WPD_SERVICE_BAD_PARAMETER_ORDER
0x802A00CC
IPortableDeviceServiceMethods::Invoke または IPortableDeviceServiceMethods::InvokeAsync のメソッド パラメーターが正しい順序で設定されていません。 パラメーターは、 WPD_PARAMETER_ATTRIBUTE_ORDERで指定された順序で設定する必要があります。
E_WPD_SERVICE_NOT_OPEN
0x802A00C9
IPortableDeviceService::Open の呼び出しによってサービス接続がまだ開かれていません。
E_WPD_SMS_INVALID_RECIPIENT
0x802A0064
携帯ショートメール メッセージに指定された受信者が無効です。
E_WPD_SMS_INVALID_MESSAGE_BODY
0x802A0065
携帯ショートメール メッセージに指定されたメッセージの本文が無効です。
E_WPD_SMS_SERVICE_UNAVAILABLE
0x802A0066
携帯ショートメール サービスは使用できません。

Windows Media Rights Manager SDK で定義されているエラーが発生することがあります。 その SDK によって定義されたエラーの一覧は、MSDN ライブラリで提供されます。 ただし、次のWindows Media Rights Manager SDK エラーは、このドキュメントには含まれていませんでした。

定数/値 説明
NS_E_DRM_DEBUGGING_NOT_ALLOWED
0xC00D2767
DRM で保護されたコンテンツにアクセスするときにデバッグすることはできません。
NS_E_NOT_LICENSED
0xC00D00CD
コンテンツはライセンスされていません。

WPD は標準Windowsエラー コードをアプリケーションに返す場合があります。 次の表に、WPD デバイスを使用する場合に最もよく使用される標準Windowsエラー コードと一般的なエラー条件を示します。

Win32 エラー コードは、HRESULT_FROM_WIN32 マクロを使用して HRESULTs に変換されます。

定数/値 説明
ERROR_ACCESS_DENIED
0x80070005
読み取り専用オブジェクトまたはプロパティを変更または削除できないことを示すために使用できます。 デバイス サービスの階層外にある子オブジェクトなど、オブジェクトがスコープ外でアクセスされていることを示すために使用できます。 WPD コマンドをデバイスに送信するために、アプリケーションにアクセス権がないことを示すために使用できます (たとえば、デバイスへのアクセス制御がグループ ポリシーによって制限されている場合)。
ERROR_ARITHMETIC_OVERFLOW
0x80070216
データ配列内の要素の数が制限 (ULONGLONG) を超えたことを示すために使用できます。
ERROR_BUSY
0x800700AA
デバイスが別の操作の処理中にビジー状態であることを示すために使用できます。 アプリケーションは、再試行する前に、その操作が完了するまで待機する必要があります。
ERROR_CANCELLED
0x800704C7
WPD API で Cancel メソッドのいずれかを呼び出した場合など、キャンセルが原因でデバイスに送信されたコマンドが中止されました。
ERROR_DATATYPE_MISMATCH
0x8007070C
デバイスから無効なデータ パケットが受信されたことを示すために使用できます。
ERROR_DEVICE_IN_USE
0x80070964
MTP/IP デバイスの場合は、デバイスが使用中であるため、接続の初期化に失敗したことを示します。
ERROR_DEVICE_NOT_CONNECTE
0x8007048F
デバイスが切断されているか、取り外されています。
ERROR_DIR_NOT_EMPTY
0x80070091
子を持つオブジェクトに対して非再帰的な削除が呼び出されたことを示すために使用できます。 アプリケーションでは、 IPortableDeviceContent::D elete で再帰的な削除フラグを使用する必要があります。
ERROR_EMPTY
0x800710D2
リソース データが予想されたときにデバイスがリソース データの送信に失敗したことを示すために使用できます (サムネイルやデバイス アイコンなど)。 これは通常、デバイス上のエラーを示します。
ERROR_FILE_NOT_FOUND
0x80070002
デバイスが切断または取り外されたことを示すために使用できます。
ERROR_GEN_FAILURE
0x8007001F
デバイスが応答を停止 (ハング) したか、デバイスで一般的なエラーが発生したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。
ERROR_INVALID_DATA
0x8007000D
デバイスとの間で送受信されたデータを正しく解析できないことを示すために使用できます。 これは、デバイス側またはトランスポート エラーを示している可能性があります。 MTP ベンダー操作がデバイスに送信された場合、このエラーは、指定された操作パラメーターが有効な VARTYPE ではないことを示している可能性があります。
ERROR_INVALID_DATATYPE
0x8007070C
指定した VARTYPE が特定のプロパティに対して無効であることを示すために使用できます。
ERROR_INVALID_FUNCTION
0x80070001
IPortableDeviceResources::GetStream を使用して読み取りモードで開かれたデバイス上のリソースに対して書き込み要求が行われたか、書き込みまたは作成用に開かれたリソースに対して読み取り要求が行われました。
ERROR_INVALID_OPERATION
0x800710DD
非再帰的削除は、子を持つオブジェクトに対して呼び出されます。
ERROR_INVALID_PARAMETER
0x80070057
アプリケーションによって指定されたパラメーターが無効です。
ERROR_INVALID_TIME
0x8007076D
datetime プロパティの変換が失敗したことを示すために使用できます。
ERROR_IO_DEVICE
0x8007045D
デバイスが応答を停止 (ハング) したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。
ERROR_NOT_FOUND
0x80070490
デバイスがプロパティをサポートしているが、そのプロパティ値が現在空または初期化されていないかどうかを示すために使用できます。 操作が完了したか取り消されたために、実行時間の長い操作の内部コンテキストが存在しなくなったことを示すために使用できます。 このような操作の例としては、一括プロパティ、オブジェクト列挙、転送、デバイス サービス メソッドの呼び出しなどがあります。 アプリケーションでは、最初から操作を再試行する必要があります。 指定したオブジェクトが存在しないことを示すために使用できます。 子オブジェクトは、デバイス サービス階層の外部にある可能性があります。
ERROR_NOT_READY
0x80070015
操作が正しく初期化されていないことを示すために使用できます。 これは通常、内部エラー、またはアプリケーションが古いデバイス ハンドルを使用していることを示します。 アプリケーションは、最初から操作を再試行するか、デバイスを再度開く必要があります。
ERROR_NOT_SUPPORTED
0x80070032
プロパティまたはコマンドがデバイスでサポートされていないことを示すために使用できます。
ERROR_OPERATION_ABORTED
0x800703E3
デバイスに送信されたコマンドは、WPD API で Cancel メソッドのいずれかを呼び出すなど、手動の取 り消 しにより中止されました。
ERROR_READ_FAULT
0x8007001E
デバイスが正しい量のデータを送信しないことを示すために使用できます。
ERROR_RESOURCE_NOT_AVAILABLE
0x8007138E
リソース (サムネイルやアイコンなど) がデバイスに存在しないことを示すために使用できます。
ERROR_SEM_TIMEOUT
0x80070079
デバイスが応答を停止 (ハング) したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。
ERROR_TIMEOUT
0x800705B4
デバイスが応答を停止 (ハング) したことを示すために使用できます。 デバイスを手動でリセットする必要がある場合があります。
ERROR_UNSUPPORTED_TYPE
0x8007065E
指定した形式がデバイスでサポートされていないことを示すために使用できます。
ERROR_WRITE_FAULT
0x8007001D
アプリケーションが要求された量のデータをデバイスに送信できなかったことを示すために使用できます。
WSAETIMEDOUT
0x8007274c
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 スタックの内部エラーを示します。

必要条件

要件
ヘッダー
PortableDevice.h

関連項目

定数