IKeywordDetectorOemAdapter::P arseDetectionResultData 方法 (keyworddetectoroemadapter.h)

在處理關鍵詞偵測事件以及從KSPROPERTY_SOUNDDETECTOR_MATCHRESULT擷取結果數據之後,操作系統會呼叫 ParseDetectionResultData 方法。 操作系統會將 OEM 特定的比對結果數據傳遞至此方法,以取得關鍵詞偵測的結果。 OEMDLL 會處理結果,並傳回相符關鍵詞的相關信息、與相符關鍵詞相關聯的語言,以及如果有任何) ,則比對的使用者 (。

語法

HRESULT ParseDetectionResultData(
  [in]  IStream                     *UserModelData,
  [in]  SOUNDDETECTOR_PATTERNHEADER *Result,
  [out] KEYWORDID                   *KeywordId,
  [out] LANGID                      *LangId,
  [out] BOOL                        *pIsUserMatch,
  [out] ULONG64                     *KeywordStartPerformanceCounterValue,
  [out] ULONG64                     *KeywordEndPerformanceCounterValue
);

參數

[in] UserModelData

系結至 Arming 模式之模型數據的 IStream 指標。

[in] Result

從 DDI SOUNDDETECTOR_PATTERNHEADER 的指標。

[out] KeywordId

識別關鍵詞函式。 驅動程式可能會傳回 0,表示沒有相符專案。

[out] LangId

識別語言。

[out] pIsUserMatch

指出使用者是否相符。

[out] KeywordStartPerformanceCounterValue

選擇性地根據 Windows 性能計數器傳回 關鍵詞的開始時間。 如果無法使用,OEMDLL 應該會傳回 0。

[out] KeywordEndPerformanceCounterValue

選擇性地根據 Windows 性能計數器傳回 關鍵詞的結束時間。 如果無法使用,OEMDLL 應該會傳回 0。

傳回值

這個方法可以傳回其中一個值。

傳回值 描述
S_OK
函式已成功結束。
E_POINTER
ModelData 指標為 NULL
E_INVALIDARG
KeywordIdLangId 參數無效。
HRESULT_FROM_WIN32 (ERROR_GEN_FAILURE)
處理無法完成。
E_HW_RESET
硬體重設是因為內部錯誤。

備註

如果驅動程式在其關鍵詞偵測器釘選的高載關鍵詞/命令數據流中包含口語關鍵詞的任何部分,則驅動程式必須傳回 KeywordEndTime 的有效值。 否則,驅動程式可能會選擇性地傳回 0。

如果驅動程式傳回 KeywordStartTimeKeywordEndTime,則傳回的值必須與從驅動程式 的 IMiniportWaveRTInputStream::GetReadPacket 例程傳回的時間戳一致。

不論驅動程式是否在高載關鍵詞/命令數據流中包含口語關鍵詞的任何部分,驅動程式都可以傳回 KeywordStartTimeKeywordEndTime 的有效值。

如果呼叫端收到 E_HW_RESET,硬體不會偵測到任何關鍵詞,而且狀態已遺失。 需要重新進行一次,才能回到監視狀態。

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
目標平台 Windows
標頭 keyworddetectoroemadapter.h

另請參閱

CoTaskMemAlloc

CoTaskMemFree

IKeywordDetectorOemAdapter

IMiniportWaveRTInputStream::GetReadPacket

KSPROPERTY_SOUNDDETECTOR_MATCHRESULT

SOUNDDETECTOR_PATTERNHEADER