錯誤碼 (Windows Media 裝置管理員 11 SDK)

Windows Media 裝置管理員 方法可以傳回各種錯誤碼。 其中有些是 Windows Media 裝置管理員 特有的,有些則是由其他 SDK 或移植套件所定義,用來建置裝置並升至 Windows Media 裝置管理員 方法。 本節說明可由來源組織之 Windows 媒體技術傳回的各種錯誤碼。

Windows Media 裝置管理員 錯誤碼

Windows Media 裝置管理員 SDK 會定義下列錯誤碼。

傳回碼 描述
WMDM_E_BUFFERTOOSMALL 呼叫端提供的緩衝區太小。 用戶端應增加緩衝區的大小,然後重試呼叫。
WMDM_E_BUSY 裝置忙碌中,無法滿足新的要求。
WMDM_E_CALL_OUT_OF_SEQUENCE 作業的呼叫順序錯誤。 (例如,呼叫 Read 沒有 Open。)
WMDM_E_INCORRECT_APPSEC 應用程式安全性的最低層級不正確。 如果裝置的金鑰/憑證組不夠高的安全性層級,可能會造成此原因。
WMDM_E_CANTOPEN_PMSN_SERVICE_PIPE 無法開啟 PMSN 服務管道。
WMDM_E_INCORRECT_RIGHTS 檔案的許可權不正確。
WMDM_E_INTERFACEDEAD 物件已中斷與客戶端的連線。
WMDM_E_INVALIDTYPE 類型無效。
WMDM_E_LICENSE_EXPIRED 授權已過期。
WMDM_E_LICENSE_NOTEXIST 授權不存在。
WMDM_E_MAC_CHECK_FAILED 訊息驗證碼檢查失敗。
WMDM_E_MOREDATA 還有更多數據。
WMDM_E_NORIGHTS 呼叫端沒有此作業的許可權。
WMDM_E_NOTCERTIFIED 呼叫端未經過驗證,無法進行此呼叫。
WMDM_E_NOTSUPPORTED 不支援此作業。
WMDM_E_PROCESSFAILED 進程失敗。
WMDM_E_REVOKED 已撤銷授權。
WMDM_E_SDMI_NOMORECOPIES 每個 SDMI 合規性都無法再製作任何複本。
WMDM_E_SDMI_TRIGGER SDMI 驗證失敗。
WMDM_E_TOO_MANY_SESSIONS 存在太多會話。
WMDM_E_USER_CANCELLED 使用者已取消作業。

 

服務提供者應該避免傳回一般失敗碼,例如E_FAIL。 它應該盡可能傳回特定的錯誤碼,如此一來,如果錯誤傳播至應用程式,應用程式就可以對使用者提供有意義的意見反應。

對於記憶體和裝置相關作業中的錯誤,服務提供者應該使用 Win32 錯誤碼。 服務提供者可以使用 HRESULT_FROM_WIN32 將 Windows 錯誤碼 轉換成 HRESULT 值,並將它們當做傳回值使用。 這個宏和錯誤碼定義於 winerror.h 中,這是平臺 SDK 的一部分。

MTP 錯誤碼

支援媒體傳輸通訊協定 (MTP) 的裝置可以傳回下列錯誤碼。 大部分的錯誤碼都表示 MTP 堆疊中有錯誤,但有助於診斷錯誤情況。

HRESULT MTP 回應碼 MTP 回應碼描述 詳細資料
0x80042003 0x2003 會話未開啟 表示作業的會話句柄不是目前開啟的會話。 這表示 MTP 堆疊中的內部錯誤。
0x80042004 0x2004 無效的 TransactionID 表示 TransactionID 為零或未參考有效的交易。 這表示 MTP 堆疊中的內部錯誤。
0x80042005 0x2005 不支援作業 表示作業程式代碼似乎是有效的程式碼,但裝置不支援作業。 這表示 MTP 堆疊中的內部錯誤。
0x80042006 0x2006 不支持參數 表示非零參數已與作業一起指定,而且參數不會用於該作業。 這表示 MTP 堆疊中的內部錯誤。
0x80042007 0x2007 不完整的傳輸 表示傳輸未完成,而且應該捨棄任何傳輸的數據。 此回應不會對應至已取消的交易。
0x80042008 0x2008 無效的 儲存體 ID 指出以作業傳送的記憶體標識碼未參考裝置上的實際有效存放區。 這表示 MTP 堆疊中的內部錯誤。
0x80042009 0x2009 無效的 ObjectHandle 表示物件句柄未參考裝置上的實際物件。 應用程式應該再次列舉記憶體。
0x8004200A 0x200A 不支援 DeviceProp 指出裝置屬性代碼似乎是有效的程式碼,但裝置不支援該屬性。 這表示 MTP 堆疊中的內部錯誤。
0x8004200B 0x200B 無效的 ObjectFormatCode 表示裝置不支援指定內容中提供的特定物件格式程序代碼。
0x80042012 0x2012 部分刪除 表示實際上只會刪除指定刪除的記憶體子集,因為有些記憶體受到寫入保護,或是在唯讀的存放區上。
0x80042013 0x2013 市集無法使用 表示無法實際使用存放區(或包含所指示物件的存放區)。 這可能會由媒體退出所造成。 此回應不應用來指出存放區忙碌中。
0x80042014 0x2014 依格式不支持的規格 表示作業嘗試只在特定格式的物件上指定動作,而且不支援該功能。 應該再次嘗試作業,而不需依格式指定。 此性質的任何回應都會推斷,任何未來嘗試使用指定的作業來指定格式時,都會產生相同的回應。 這表示 MTP 堆疊中的內部錯誤。
0x80042015 0x2015 沒有有效的物件Info 表示主機在傳送物件之前未將有效的對象資訊提供給裝置。 這表示 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 表示想要傳送的物件無法儲存在裝置的檔案系統中。 儲存空間不足時,不應傳回此專案。

 

適用於可攜式裝置移植套件錯誤的 Windows Media DRM

下列錯誤碼定義於適用於可攜式裝置移植套件的 Windows Media DRM 中,而且可由呼叫此移植套件上建置之裝置的方法傳回。 這些錯誤碼與DRM問題相關。

傳回碼 描述 十六進位值
DRM_FAILED(狀態) 作業失敗。 (狀態)<0
DRM_SUCCEEDED(狀態) 作業已成功完成。 (狀態) >= 0
DRM_SUCCESS 作業已成功完成。 0x00000000L
DRM_S_FALSE 方法成功並傳回布爾值 FALSE 0x00000001L
DRM_E_FAIL 發生未指定的失敗。 0x80004005L
DRM_E_INVALIDARG 參數無效或為 NULL 指標。 0x80070057L
DRM_E_OUTOFMEMORY 方法無法配置必要的記憶體。 0x800000002L
DRM_E_FILENOTFOUND 系統找不到指定的檔案。 0x80030002L
DRM_E_BUFFERTOOSMALL 緩衝區對於數據而言太小。 0x8007007AL
DRM_E_NOTIMPL 未實作。 0x80004001L
DRM_E_NOMORE 列舉的結尾,或沒有其他可用的數據。 0x80070103L
DRM_E_ARITHMETIC_OVERFLOW 算術運算導致溢位(重要位遺失)。 0x8007534L
DRM_E_ALGORITHMNOTSET 不支援此作業所需的加密演算法。 0x8004c017
DRM_E_APPCERT_REVOKED 已撤銷提供給DRM的應用程式憑證。 0X8004C053
DRM_E_BACKUP_EXISTS 備份檔已經存在。 0x8004c032
DRM_E_CH_ATTR_MISSING 遺漏內容標頭屬性。 0x80041107L
DRM_E_CH_BAD_KEY 金鑰無效。 0x8004110EL
DRM_E_CH_CHECKSUM_MISSING 內容標頭總和檢查碼遺失。 0x80041106L
DRM_E_CH_INVALID_HEADER 內容標頭無效。 0x80041108L
DRM_E_CH_KID_MISSING 內容標頭中遺漏 KID 屬性。 0x80041104L
DRM_E_CH_LAINFO_MISSING LAINFO 屬性從內容標頭錯誤。 0x80041105L
DRM_E_CH_NOT_SIGNED 標頭未簽署。 0x80041113L
DRM_E_CH_UNABLE_TO_VERIFY 無法驗證內容標頭的簽章。 0x8004110AL
DRM_E_CH_UNKNOWN_ERROR 發生未知的錯誤。 0x80041116L
DRM_E_CH_UNSUPPORTED_HASH_ALGORITHM 不支援哈希演算法。 0x8004110CL
DRM_E_CH_UNSUPPORTED_SIGN_ALGORITHM 不支援簽章演算法。 0x8004110DL
DRM_E_CH_UNSUPPORTED_VERSION 不支援內容標頭版本。 0x8004110BL
DRM_E_CH_VERSION_MISSING 內容標頭版本遺失。 0x80041103L
DRM_E_CIPHER_NOTINITIALIZED 呼叫加密/解密例程之前,DRM 加密例程未正確初始化。 0x800480D2L
DRM_E_CLIENTTIMEINVALID 裝置上的時間/時鐘不會與容錯內的授權伺服器同步。 0x8004c01c
DRM_E_CLK_INVALID_DATE 安全時鐘回應無效。 0x8004c040
DRM_E_CLK_INVALID_RESPONSE 安全時鐘回應無效。 0x8004c03f
DRM_E_CLK_NOT_SET 授權可能已存在,但無法使用,因為未設定安全時鐘。 0x8004C05B
DRM_E_CLK_NOT_SUPPORTED 不支援安全時鐘。 0x8004c04a
DRM_E_CLK_RESETSTATEREADERROR 無法讀取安全時鐘重設狀態。 0x8004c04d
DRM_E_CLK_RESETSTATEWRITEERROR 無法寫入安全時鐘重設狀態。 0x8004c04e
DRM_E_CLK_UNSUPPORTED_VALUE 安全時鐘回應包含不支援的值。 0x8004c041
DRM_E_CONDITIONFAIL 授權中的條件無法通過。 0x8004c007
DRM_E_CONDITIONNOTSUPPORTED 此版本的 DRM 不支援授權中的條件。 0x8004c008
DRM_E_CRYPTO_FAILED 密碼編譯作業失敗。 0X8004C054
DRM_E_DECRYPT_NOTINITIALIZED 嘗試解密資料之前,DRM 解密常式未正確初始化。 0x800480D3L
DRM_E_DEVCERTEXCEEDSSIZELIMIT 裝置憑證超過大小上限。 0x8004c043
DRM_E_DEVCERTINDIV_NOT_SUPPORTED 不支援裝置憑證個人化。 0x8004c04b
DRM_E_DEVCERTREADERROR 無法讀取裝置憑證。 0x8004c045
DRM_E_DEVCERTTEMPLATEEXCEEDSSIZELIMIT 裝置憑證範本超過大小上限。 0x8004c044
DRM_E_DEVCERTTEMPLATEREADERROR 無法讀取裝置憑證範本。 0x8004c049
DRM_E_DEVCERTWRITEERROR 無法儲存裝置憑證。 0x8004c046
DRM_E_DEVICENOTINIT 此裝置尚未針對 DRM 初始化服務初始化。 0x8004c001
DRM_E_DRMNOTINIT 應用程式未正確呼叫 DRM_MGR_Initialize 0x8004c002
DRM_E_DUPLICATEDHEADERATTRIBUTE 標頭包含重複的屬性。 0x8004c02d
DRM_E_FILEREADERROR 讀取檔案時發生錯誤。 0x8004c01a
DRM_E_FILESEEKERROR 在檔案中搜尋時發生錯誤。 0x8004c037
DRM_E_FILEWRITEERROR 寫入檔案時發生錯誤。 0x8004c01b
DRM_E_HASHMISMATCH 索引鍵雜湊檢查失敗。 0x8004c010
DRM_E_HDSBLOCKMISMATCH 標頭中遺漏總和檢查碼 屬性。 0x8004c031
DRM_E_HDSEXCLUSIVELOCKONLY 只接受獨佔鎖定。 0x8004c039
DRM_E_HDSFILECORRUPTED HDS 檔案已損毀。 0x8004c026
DRM_E_HDSFILEEXISTS HDS 檔案已經存在。 0x8004c034
DRM_E_HDSLOCKFAILED 鎖定 HDS 檔案的區段失敗。 0x8004c036
DRM_E_HDSNAMESPACEFULL HDS 命名空間已滿。 0x8004c022
DRM_E_HDSNAMESPACEINUSE 中的 HDS 命名空間未使用中。 0x8004c028
DRM_E_HDSNAMESPACENOTFOUND 找不到 HDS 命名空間。 0x8004c023
DRM_E_HDSNOTLOCKEDEXCLUSIVE 現有的鎖定不是獨佔的。 0x8004c038
DRM_E_HDSRESERVEDKEYDETECTED 在 UniqueKey 中偵測到 HDS 保留金鑰值。 0x8004c03A
DRM_E_HDSSEEKERROR 嘗試在 HDS 檔案中搜尋時發生錯誤。 0x8004c027
DRM_E_HDSSLOTEXIST 沒有 HDS 資料lot。 0x8004c025
DRM_E_HDSSLOTNOTFOUND 找不到 HDS 資料lot。 0x8004c024
DRM_E_HDSSTOREFULL HDS 資料檔案已滿。 0x8004c01d
DRM_E_HEADER_NOT_SET 未設定 V2 內容標頭 0x8004c03C
DRM_E_INCOMPATABLELICENSESIZE 授權的大小不相容。 DRM 不瞭解此授權。 0x8004c004
DRM_E_INVALID_SECURESTORE_PASSWORD 用來開啟安全存放區金鑰的密碼無法驗證安全存放區哈希。 0x8004c029
DRM_E_INVALID_SIGNATURE 授權簽章無效。 0x800480CFL
DRM_E_INVALIDBINDID 系結標識碼無效。 0x8004c015
DRM_E_INVALIDDEVICECERTIFICATE 裝置憑證無效。 0x8004c035
DRM_E_INVALIDDEVICECERTIFICATETEMPLATE 裝置憑證無效。 0x8004c042
DRM_E_INVALIDLICENSE 授權無效。 0x8004c006
DRM_E_INVALIDLICENSEFLAGS 授權中的旗標無效。 DRM 不了解它們,或它們發生衝突。 0x8004c005
DRM_E_INVALIDLICENSESTORE 授權存放區版本號碼不正確,或以其他方式儲存區無效。 0x8004c019
DRM_E_INVALIDRIGHT 授權中的許可權無效。 0x8004c003
DRM_E_INVALIDTIME 時間結構無效。 0x8004c011
DRM_E_INVALIDXMLTAG XML 標記無效。 0x8004c020
DRM_E_KEY_MISMATCH 公鑰組不符。 0x80048013L
DRM_E_LIC_KEY_AND_CERT_MISMATCH 金鑰和憑證不符。 0x80048013L
DRM_E_LIC_KEY_DECODE_FAILURE 無法譯碼索引鍵。 0x80048007L
DRM_E_LIC_SIGNATURE_FAILURE 授權簽章無效。 0x80048008L
DRM_E_LICENSE_TOOLONG 授權大小太長。 0x8004c032
DRM_E_LICENSEEXPIRED 授權已過期,方法是耗盡播放計數或達到結束日期。 0x8004c009
DRM_E_LICENSEMISMATCH 授權內容識別碼或 SDK 識別碼不符合應用程式所要求的識別碼。 0x8004c00c
DRM_E_LICENSENOTBOUND 授權尚未系結至。 如果沒有成功的系結呼叫,解密便無法進行。 0x8004c00f
DRM_E_LICENSENOTFOUND 在外部授權存放區中找不到授權。 0x8004c013
DRM_E_LICENSENOTYETVALID 目前的時間在授權開始時間之前,因此授權尚無效。 0x8004c00a
DRM_E_LICENSESERVERNEEDSKEY 授權伺服器需要初始化服務中的裝置系結金鑰版本。 0x8004c018
DRM_E_LICENSESTORENOTFOUND 找不到外部授權存放區。 0x8004c012
DRM_E_LICENSEVERSIONNOTSUPPORTED 裝置上的DRM版本不支援DRM授權版本。 0x8004c014
DRM_E_LOGICERR DRM 程式代碼中有邏輯錯誤。 不應該傳回此結果。 傳回未處理的程式代碼路徑 0x8004c3e8
DRM_E_LRB_INVALIDLICENSEDATA 授權撤銷回應是以與授權伺服器公鑰不同的公鑰簽署。 0x8004c073
DRM_E_LRB_INVALIDSIGNATURE 授權撤銷回應中的簽章無效。 0x8004c071
DRM_E_LRB_LGPUBKEY_MISMATCH 授權撤銷回應是以與授權伺服器公鑰不同的公鑰簽署。 0x8004c072
DRM_E_LRB_NOLGPUBKEY 授權撤銷回應不包含有效的授權伺服器公鑰。 0x8004c070
DRM_E_MACHINEIDMISMATCH 裝置的機器標識碼與裝置憑證中的計算機標識碼不同。 0x8004c03e
DRM_E_METERING_INVALID_COMMAND 處理計量回應時傳送了無效的命令。 0X8004C051
DRM_E_METERING_MID_MISMATCH 計量憑證和計量響應數據中的計量標識碼不同。 0X8004C05F
DRM_E_METERING_NOT_SUPPORTED 不支援計量。 0x8004c04c
DRM_E_METERING_RESPONSE_DECRYPT_FAILED 計量回應的加密區段無法解密 0X8004C060
DRM_E_METERING_STORE_CORRUPT 計量存放區已損毀。 0X8004C052
DRM_E_METERING_WRONG_TID 計量回應包含錯誤的交易識別碼。 0X8004C050
DRM_E_NEEDDEVCERTINDIV 裝置憑證是範本。 它必須進行個人化。 0x8004c03d
DRM_E_NO_CLK_SUPPORTED 此裝置不支援任何時鐘。 因此無法播放限時授權。 0x8004C05C
DRM_E_NO_URL 找不到 URL 資訊。 0x8004C05D
DRM_E_NOACTIONINLICENSEREQUEST 授權要求不包含任何動作。 0x8004c02c
DRM_E_NOCHECKSUMINHEADER 標頭中遺漏總和檢查碼屬性。 0x8004c030
DRM_E_NOKIDINHEADER 標頭中遺漏索引鍵標識碼屬性。 0x8004c02e
DRM_E_NOLAINFOINHEADER 標頭中遺漏 LAINFO 屬性。 0x8004c02f
DRM_E_NORIGHTSREQUESTED 應用程式在嘗試系結之前未要求任何許可權。 0x8004c00e
DRM_E_NOXMLCDATA 找不到 XML CDATA。 0x8004c021
DRM_E_NOXMLCLOSETAG 找不到 XML 關閉標記。 0x8004c01f
DRM_E_NOXMLOPENTAG 找不到 XML 開啟標記。 0x8004c01e
DRM_E_PKCRYPTO_FAILURE 非對稱密碼編譯作業中發生錯誤。 0x800480D5L
DRM_E_POLICY_METERING_DISABLED 呼叫計量程序代碼,但群組或用戶原則會停用計量。 0x8004C059
DRM_E_POLICY_ONLINE_DISABLED 組策略會停用在線通訊。 0x8004C05A
DRM_E_PRIVKEYREADERROR 無法讀取裝置的私鑰。 0x8004c047
DRM_E_PRIVKEYWRITEERROR 無法儲存裝置的私鑰。 0x8004c048
DRM_E_RIGHTSNOTAVAILABLE 應用程式所要求的許可權無法在授權中使用。 0x8004c00b
DRM_E_SECURESTORE_CORRUPT 安全存放區已損毀。 0x8004c02a
DRM_E_SECURESTORE_FULL 目前的安全存放區金鑰已滿。 無法再新增任何數據。 0x8004c02b
DRM_E_SECURESTORE_LOCKNOTOBTAINED 在以原始模式讀取或寫入數據至安全存放區之前,必須使用 DRM_SST_OpenData 取得鎖定。 0x800480D4L
DRM_E_STACK_CORRUPT 堆疊配置器內容已損毀。 這通常是由緩衝區溢出所造成。 0X8004C055
DRM_E_STACKTOOSMALL 提供給DRM API的堆疊太小。 0x800480D1L
DRM_E_SYNC_ENTRYNOTFOUND 在同步處理存放區中找不到專案。 0x800480D0L
DRM_E_UNKNOWN_BINDING_KEY 找不到授權的相符系結金鑰。 0x8004C056
DRM_E_UNKNOWN_PROPERTY 裝置屬性未知。 0x8004C05E
DRM_E_UNSUPPORTEDALGORITHM 不支援此作業所需的加密演算法。 0x8004c016
DRM_E_V1_LICENSE_CHAIN_NOT_SUPPORTED 不支援使用 V1 內容的授權鏈結。 0x8004C057
DRM_E_V1_NOT_SUPPORTED 不支援 V1 授權取得。 0x8004c03B
DRM_E_WRONG_TOKEN_TYPE 使用了錯誤的令牌類型。 0x8004C058
DRM_E_WRONGTOKENTYPE Token 參數的類型不相容。 0x8004c00d
DRM_E_XMLNOTFOUND 找不到必要的 XML 標記。 0X8004C04F
NS_E_DRM_DEBUGGING_NOT_ALLOWED 命令無法使用附加的調試程式來執行。 0xC00D2767
DRM 安全性元素必須更新。 用戶可以流覽 DRM個人化 來更新其電腦。 0x800480CF
DRM 安全性元素必須更新。 用戶可以流覽 DRM個人化 來更新其電腦。 0x80049006

 

Windows Media Rights Manager SDK 錯誤

有時候,您可能會在 Windows Media Rights Manager SDK 中遇到錯誤。 MSDN 連結庫中會提供該 SDK 所定義的錯誤清單。 不過,未記載下列 Windows Media Rights Manager SDK 錯誤。

傳回碼 描述 十六進位值
NS_E_DRM_DEBUGGING_NOT_ALLOWED 您無法在存取受DRM保護的內容時進行偵錯。 0xC00D2767
NS_E_NOT_LICENSED 內容未獲得授權。 0xC00D00CD
NS_E_DRM_LICENSE_UNUSABLE 授權因未指定的原因而無法使用。 0xC00D2748

 

程式設計參考