DirectShow 錯誤和成功碼

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

本主題列出針對 DirectShow 定義的 HRESULT 傳回碼。 請注意,DirectShow API 可以傳回此處未顯示的其他 HRESULT 值。 如需其他 HRESULT 值,請參閱 COM 錯誤碼

下表包含以數值順序的 DirectShow 特定錯誤和成功碼。 以 VFW_S_ 開頭的傳回碼表示成功。 作業可能會部分成功,但仍有成功的傳回值。 例如, VFW_S_SOME_DATA_IGNORED 表示檔案已藉由忽略其中一些屬性設定來轉譯。 以 VFW_E_ 開頭的傳回碼表示錯誤。

這些值定義在標頭檔 Vfwmsgs.h 中。

常數/值 描述
VFW_S_NO_MORE_ITEMS
0x00040103
到達清單結尾;清單中沒有其他專案。 (篩選開發人員: CBasePin::GetMediaType 方法預期會傳回此值。)
VFW_S_DUPLICATE_NAME
0x0004022D
嘗試新增具有重複名稱的篩選成功,且名稱已修改。
VFW_S_STATE_INTERMEDIATE
0x00040237
狀態轉換未完成。
VFW_S_PARTIAL_RENDER
0x00040242
某些資料流程的格式不受支援。
VFW_S_SOME_DATA_IGNORED
0x00040245
檔案包含一些未使用的屬性設定。
VFW_S_CONNECTIONS_DEFERRED
0x00040246
某些連線失敗,並已延遲。
VFW_S_RESOURCE_NOT_NEEDED
0x00040250
不再需要指定的資源。
VFW_S_MEDIA_TYPE_IGNORED
0x00040254
GraphEdit (.grf) 檔案已成功載入,但至少有兩個針腳使用與 GraphEdit 檔案中儲存的媒體類型不同的媒體類型進行連線。
VFW_S_VIDEO_NOT_RENDERED
0x00040257
無法播放視訊資料流程:找不到適當的轉譯器。
VFW_S_AUDIO_NOT_RENDERED
0x00040258
無法播放音訊資料流程:找不到適當的轉譯器。
VFW_S_RPZA
0x0004025A
無法播放視訊資料流程:不支援 'RPZA' 格式。
VFW_S_ESTIMATED
0x00040260
傳回的值必須估計。 無法保證其精確度。
VFW_S_RESERVED
0x00040263
此成功程式碼會保留給 DirectShow 內部用途。
VFW_S_STREAM_OFF
0x00040267
資料流程已關閉。
VFW_S_CANT_CUE
0x00040268
篩選準則為作用中,但無法傳遞資料。 請參閱 IMediaFilter::GetState
VFW_S_NO_STOP_TIME
0x00040270
此範例有開始時間,但不是停止時間。 在此情況下,傳回的停止時間會設定為開始時間加上一個。
VFW_S_NOPREVIEWPIN
0x0004027E
預覽是透過 Smart Tee 篩選轉譯,因為擷取篩選沒有預覽釘選。
VFW_S_DVD_NON_ONE_SEQUENTIAL
0x00040280
目前的標題不是一組循序的章節 (PGC) ,因此計時資訊可能不是連續的。
VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE
0x0004028C
音訊資料流程不包含足夠的資訊來判斷每個通道的內容。
VFW_S_DVD_NOT_ACCURATE
0x0004028D
DVD 上的搜尋作業不正確。
VFW_E_INVALIDMEDIATYPE
0x80040200
指定的媒體類型無效。
VFW_E_INVALIDSUBTYPE
0x80040201
指定的媒體子類型無效。
VFW_E_NEED_OWNER
0x80040202
此物件只能建立為匯總物件。
VFW_E_ENUM_OUT_OF_SYNC
0x80040203
列舉物件的狀態已變更,現在與列舉值的狀態不一致。 捨棄從先前呼叫列舉值取得的任何資料,然後藉由呼叫列舉值的 Reset 方法來更新列舉值。
VFW_E_ALREADY_CONNECTED
0x80040204
至少已連接作業所涉及的其中一個針腳。
VFW_E_FILTER_ACTIVE
0x80040205
無法執行這項作業,因為篩選準則為使用中。
VFW_E_NO_TYPES
0x80040206
其中一個指定的針腳不支援媒體類型。
VFW_E_NO_ACCEPTABLE_TYPES
0x80040207
這些針腳之間沒有常見的媒體類型。
VFW_E_INVALID_DIRECTION
0x80040208
無法連接相同方向的兩個針腳。
VFW_E_NOT_CONNECTED
0x80040209
無法執行作業,因為針腳未連接。
VFW_E_NO_ALLOCATOR
0x8004020A
沒有可用的範例緩衝區配置器。
VFW_E_RUNTIME_ERROR
0x8004020B
發生執行階段錯誤。
VFW_E_BUFFER_NOTSET
0x8004020C
尚未設定緩衝區空間。
VFW_E_BUFFER_OVERFLOW
0x8004020D
緩衝區不夠大。
VFW_E_BADALIGN
0x8004020E
指定了不正確對齊方式。
VFW_E_ALREADY_COMMITTED
0x8004020F
配置器未認可。 請參閱 IMemAllocator::Commit
VFW_E_BUFFERS_OUTSTANDING
0x80040210
一或多個緩衝區仍在使用中。
VFW_E_NOT_COMMITTED
0x80040211
配置器未使用中時,無法配置範例。
VFW_E_SIZENOTSET
0x80040212
無法配置記憶體,因為尚未設定大小。
VFW_E_NO_CLOCK
0x80040213
無法鎖定同步處理,因為尚未定義時鐘。
VFW_E_NO_SINK
0x80040214
無法傳送品質訊息,因為尚未定義品質接收。
VFW_E_NO_INTERFACE
0x80040215
尚未實作必要的介面。
VFW_E_NOT_FOUND
0x80040216
找不到物件或名稱。
VFW_E_CANNOT_CONNECT
0x80040217
找不到中繼篩選的組合來建立連接。
VFW_E_CANNOT_RENDER
0x80040218
找不到篩選準則的組合來轉譯資料流程。
VFW_E_CHANGING_FORMAT
0x80040219
無法動態變更格式。
VFW_E_NO_COLOR_KEY_SET
0x8004021A
尚未設定色彩索引鍵。
VFW_E_NOT_OVERLAY_CONNECTION
0x8004021B
目前的針腳連線未使用 IOverlay 傳輸。
VFW_E_NOT_SAMPLE_CONNECTION
0x8004021C
目前的針腳連線未使用 IMemInputPin 傳輸。
VFW_E_PALETTE_SET
0x8004021D
設定色彩索引鍵會與已設定的調色盤衝突。
VFW_E_COLOR_KEY_SET
0x8004021E
設定調色盤會與已設定的色彩索引鍵衝突。
VFW_E_NO_COLOR_KEY_FOUND
0x8004021F
沒有相符的色彩索引鍵可用。
VFW_E_NO_PALETTE_AVAILABLE
0x80040220
沒有可用的調色盤。
VFW_E_NO_DISPLAY_PALETTE
0x80040221
顯示不會使用調色盤。
VFW_E_TOO_MANY_COLORS
0x80040222
目前顯示設定的色彩太多。
VFW_E_STATE_CHANGED
0x80040223
等候處理範例時的狀態已變更。
VFW_E_NOT_STOPPED
0x80040224
無法執行作業,因為篩選準則未停止。
VFW_E_NOT_PAUSED
0x80040225
無法執行作業,因為篩選準則未暫停。
VFW_E_NOT_RUNNING
0x80040226
無法執行作業,因為篩選未執行。
VFW_E_WRONG_STATE
0x80040227
無法執行作業,因為篩選準則處於錯誤狀態。
VFW_E_START_TIME_AFTER_END
0x80040228
範例開始時間是在範例結束時間之後。
VFW_E_INVALID_RECT
0x80040229
提供的矩形無效。
VFW_E_TYPE_NOT_ACCEPTED
0x8004022A
這個針腳無法使用提供的媒體類型。
VFW_E_SAMPLE_REJECTED
0x8004022B
無法轉譯此範例。
VFW_E_SAMPLE_REJECTED_EOS
0x8004022C
無法轉譯此範例,因為已到達資料流程的結尾。
VFW_E_DUPLICATE_NAME
0x8004022D
嘗試新增名稱重複的篩選失敗。
VFW_E_TIMEOUT
0x8004022E
逾時已過期。
VFW_E_INVALID_FILE_FORMAT
0x8004022F
檔案格式無效。
VFW_E_ENUM_OUT_OF_RANGE
0x80040230
清單已耗盡。
VFW_E_CIRCULAR_GRAPH
0x80040231
篩選圖表是迴圈的。
VFW_E_NOT_ALLOWED_TO_SAVE
0x80040232
此狀態不允許更新。
VFW_E_TIME_ALREADY_PASSED
0x80040233
嘗試將命令排入佇列一段時間。
VFW_E_ALREADY_CANCELLED
0x80040234
已取消已排入佇列的命令。
VFW_E_CORRUPT_GRAPH_FILE
0x80040235
無法轉譯檔案,因為檔案已損毀。
VFW_E_ADVISE_ALREADY_SET
0x80040236
IOverlay建議連結已經存在。
VFW_E_NO_MODEX_AVAILABLE
0x80040238
沒有全螢幕模式可供使用。
VFW_E_NO_ADVISE_SET
0x80040239
無法取消此建議,因為它未成功設定。
VFW_E_NO_FULLSCREEN
0x8004023A
無法使用全螢幕模式。
VFW_E_IN_FULLSCREEN_MODE
0x8004023B
在全螢幕模式中,無法呼叫 IVideoWindow 方法。
VFW_E_UNKNOWN_FILE_TYPE
0x80040240
無法辨識此檔案的媒體類型。
VFW_E_CANNOT_LOAD_SOURCE_FILTER
0x80040241
無法載入此檔案的來源篩選。
VFW_E_FILE_TOO_SHORT
0x80040243
檔案似乎不完整。
VFW_E_INVALID_FILE_VERSION
0x80040244
檔案的版本號碼無效。
VFW_E_INVALID_CLSID
0x80040247
此檔案已損毀:其中包含不正確類別識別碼。
VFW_E_INVALID_MEDIA_TYPE
0x80040248
此檔案已損毀:其中包含不正確媒體類型。
VFW_E_SAMPLE_TIME_NOT_SET
0x80040249
此範例未設定時間戳記。
VFW_E_MEDIA_TIME_NOT_SET
0x80040251
此範例未設定媒體時間。
VFW_E_NO_TIME_FORMAT_SET
0x80040252
未選取媒體時間格式。
VFW_E_MONO_AUDIO_HW
0x80040253
無法變更平衡,因為音訊裝置只有單調。
VFW_E_NO_DECOMPRESSOR
0x80040255
無法播放視訊串流:找不到適當的解壓縮程式。
VFW_E_NO_AUDIO_HARDWARE
0x80040256
無法播放音訊串流:沒有可用的音訊硬體,或不支援硬體。
VFW_E_RPZA
0x80040259
無法播放視訊資料流程:不支援 'RPZA' 格式。
VFW_E_PROCESSOR_NOT_SUITABLE
0x8004025B
DirectShow 無法在此處理器上播放 MPEG 影片。
VFW_E_UNSUPPORTED_AUDIO
0x8004025C
無法播放音訊資料流程:不支援音訊格式。
VFW_E_UNSUPPORTED_VIDEO
0x8004025D
無法播放視訊資料流程:不支援視訊格式。
VFW_E_MPEG_NOT_CONSTRAINED
0x8004025E
DirectShow 無法播放此視訊串流,因為它落在受限制的標準之外。
VFW_E_NOT_IN_GRAPH
0x8004025F
無法在不在篩選圖形中的物件上執行要求的函式。
VFW_E_NO_TIME_FORMAT
0x80040261
無法存取 物件上的時間格式。
VFW_E_READ_ONLY
0x80040262
無法建立連線,因為資料流程是唯讀的,而且篩選會改變數據。
VFW_E_BUFFER_UNDERFLOW
0x80040264
緩衝區不足。
VFW_E_UNSUPPORTED_STREAM
0x80040265
無法播放檔案:不支援格式。
VFW_E_NO_TRANSPORT
0x80040266
針腳無法連線,因為它們不支援相同的傳輸。
例如,上游篩選器可能需要 IAsyncReader 介面,而下游篩選準則則需要 IMemInputPin
VFW_E_BAD_VIDEOCD
0x80040269
裝置無法正確讀取視訊 CD,或資料已損毀。
VFW_E_OUT_OF_VIDEO_MEMORY
0x80040271
此顯示器解析度和色彩數目不足, 視訊記憶體不足。 減少解決方式可能會有所説明。
VFW_E_VP_NEGOTIATION_FAILED
0x80040272
視訊埠連線交涉程式失敗。
VFW_E_DDRAW_CAPS_NOT_SUITABLE
0x80040273
尚未安裝 DirectDraw 或視訊卡功能不適用。 請確定顯示器不在 16 色模式中。
VFW_E_NO_VP_HARDWARE
0x80040274
沒有可用的視訊埠硬體,或硬體沒有回應。
VFW_E_NO_CAPTURE_HARDWARE
0x80040275
沒有可用的擷取硬體,或硬體沒有回應。
VFW_E_DVD_OPERATION_INHIBITED
0x80040276
DVD 內容目前禁止此使用者作業。
VFW_E_DVD_INVALIDDOMAIN
0x80040277
目前網域中不允許此作業。
VFW_E_DVD_NO_BUTTON
0x80040278
要求的按鈕無法使用。
VFW_E_DVD_GRAPHNOTREADY
0x80040279
DVD-Video 尚未建置播放圖表。
VFW_E_DVD_RENDERFAIL
0x8004027A
DVD-Video 播放圖表建置失敗。
VFW_E_DVD_DECNOTENOUGH
0x8004027B
因為解碼器不足,所以無法建置播放圖表 DVD-Video。
VFW_E_DDRAW_VERSION_NOT_SUITABLE
0x8004027C
DirectDraw 版本號碼不適用。 請務必安裝 DirectX 5 或更高版本。
VFW_E_COPYPROT_FAILED
0x8004027D
無法啟用禁止複製。
VFW_E_TIME_EXPIRED
0x8004027F
Seek 命令逾時。
VFW_E_DVD_WRONG_SPEED
0x80040281
作業無法以目前的播放速度執行。
VFW_E_DVD_MENU_DOES_NOT_EXIST
0x80040282
指定的 DVD 功能表不存在。
VFW_E_DVD_CMD_CANCELLED
0x80040283
指定的命令已取消或已不存在。
VFW_E_DVD_STATE_WRONG_VERSION
0x80040284
DVD 狀態資訊包含錯誤的版本號碼。
VFW_E_DVD_STATE_CORRUPT
0x80040285
DVD 狀態資訊已損毀。
VFW_E_DVD_STATE_WRONG_DISC
0x80040286
DVD 狀態資訊來自另一個磁片,而不是目前的光碟。
VFW_E_DVD_INCOMPATIBLE_REGION
0x80040287
區域與磁片磁碟機不相容。
VFW_E_DVD_NO_ATTRIBUTES
0x80040288
要求的屬性不存在。
VFW_E_DVD_NO_GOUP_PGC
0x80040289
無法執行此作業,因為無法使用 PGC) (GoUp 程式鏈結。
VFW_E_DVD_LOW_PARENTAL_LEVEL
0x8004028A
因為家長等級太低,所以禁止此作業。
VFW_E_DVD_NOT_IN_KARAOKE_MODE
0x8004028B
DVD 導覽器不是處於登入模式。
VFW_E_FRAME_STEP_UNSUPPORTED
0x8004028E
不支援框架逐步執行。
VFW_E_DVD_STREAM_DISABLED
0x8004028F
要求的資料流程已停用。
VFW_E_DVD_TITLE_UNKNOWN
0x80040290
作業需要標題編號,但目前沒有標題。 當 DVD 導覽器不在 [標題] 網域或 [影片標題集] 功能表 (VTSM) 網域時,就會發生此錯誤。
VFW_E_DVD_INVALID_DISC
0x80040291
指定的路徑不是有效的 DVD 光碟。
VFW_E_DVD_NO_RESUME_INFORMATION
0x80040292
無法完成繼續作業,因為沒有繼續資訊。
VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD
0x80040293
呼叫執行緒上已封鎖 Pin。
VFW_E_PIN_ALREADY_BLOCKED
0x80040294
釘選已在另一個執行緒上遭到封鎖。
VFW_E_CERTIFICATION_FAILURE
0x80040295
使用此篩選準則受限於軟體金鑰。 應用程式必須解除鎖定篩選準則。
VFW_E_VMR_NOT_IN_MIXER_MODE
0x80040296
視訊混合轉譯器 (VMR) 不在混合模式中。 呼叫 IVMRFilterConfig::SetNumberOfStreams (VMR-7) 或 IVMRFilterConfig9::SetNumberOfStreams (VMR-9) 。
VFW_E_VMR_NO_AP_SUPPLIED
0x80040297
應用程式尚未提供具有有效配置器簡報者物件的 VMR 篩選器。
VFW_E_VMR_NO_DEINTERLACE_HW
0x80040298
VMR 在目前的顯示裝置上找不到任何反交錯硬體。
VFW_E_VMR_NO_PROCAMP_HW
0x80040299
VMR 在目前的顯示裝置上找不到任何支援 ProcAmp 控制項的硬體。
VFW_E_DVD_VMR9_INCOMPATIBLEDEC
0x8004029A
硬體解碼器會使用與 VMR-9 篩選不相容 (的 VPE) 視訊埠延伸模組。
VFW_E_NO_COPP_HW
0x8004029B
目前的顯示裝置不支援 (COPP) 的內容輸出保護通訊協定;或 VMR 尚未連線到顯示裝置。
VFW_E_BAD_KEY
0x800403F2
登錄專案已損毀。
VFW_E_DVD_NONBLOCKING
0x8004029C
DVD 導覽器無法完成要求的作業,因為另一個作業仍在擱置中。
VFW_E_DVD_TOO_MANY_RENDERERS_IN_FILTER_GRAPH
0x8004029D
DVD 導覽器無法建置 DVD 播放圖表,因為圖表包含一個以上的視訊轉譯器。
VFW_E_DVD_NON_EVR_RENDERER_IN_FILTER_GRAPH
0x8004029E
DVD 導覽器無法將增強的視訊轉譯器 (EVR) 篩選新增至篩選圖形,因為圖形已經包含視訊轉譯器。
VFW_E_DVD_RESOLUTION_ERROR
0x8004029F
DVD 視訊輸出不是正確的解析度。
VFW_E_CODECAPI_LINEAR_RANGE
0x80040310
指定的編解碼器參數具有線性範圍,而不是列舉的清單。
VFW_E_CODECAPI_ENUMERATED
0x80040311
指定的編解碼器參數具有列舉的值範圍,而不是線性範圍。
VFW_E_CODECAPI_NO_DEFAULT
0x80040313
指定的編解碼器參數沒有預設值。
VFW_E_CODECAPI_NO_CURRENT_VALUE
0x80040314
指定的編解碼器參數沒有目前的值。
E_PROP_ID_UNSUPPORTED
0x80070490
不支援指定的屬性識別碼。
E_PROP_SET_UNSUPPORTED
0x80070492
不支援指定的屬性集。

除了先前列出的值之外,DirectShow Editing Services 還會定義下列 HRESULT 值。

常數/值 描述
S_WARN_OUTPUTRESET
0x00009DD4
已刪除圖表的轉譯部分。 應用程式必須重建它。
E_NOTINTREE
0x80040400
物件不包含在時程表中。
E_RENDER_ENGINE_IS_BROKEN
0x80040401
作業失敗,因為專案未成功轉譯。
E_MUST_INIT_RENDERER
0x80040402
尚未初始化轉譯引擎。
E_NOTDETERMINED
0x80040403
無法判斷要求的值。
E_NO_TIMELINE
0x80040404
沒有時間軸物件。

規格需求

需求
標頭
Vfwmsgs.h

另請參閱

AMGetErrorText

常數和 GUID