функция обратного вызова EVT_ACX_KEYWORDSPOTTER_ASSIGN_ARM (acxelements.h)
Обратный вызов EVT_ACX_KEYWORDSPOTTER_ASSIGN_ARM задает состояние arm ключевое слово споттер.
Синтаксис
EVT_ACX_KEYWORDSPOTTER_ASSIGN_ARM EvtAcxKeywordspotterAssignArm;
NTSTATUS EvtAcxKeywordspotterAssignArm(
ACXKEYWORDSPOTTER KeywordSpotter,
GUID *EventId,
BOOLEAN Arm
)
{...}
Параметры
KeywordSpotter
Существующий инициализированный объект ACXKEYWORDSPOTTER. Дополнительные сведения об объектах ACX см. в разделе Сводка по объектам ACX. См. также функцию AcxKeywordSpotterCreate .
EventId
Указатель на GUID, представляющий EventId.
Arm
Логическое значение, указывающее, вооружена ли ключевое слово обнаружение.
Возвращаемое значение
Возвращает значение STATUS_SUCCESS
, если вызов был успешным. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.
Комментарии
Общие сведения об обнаружении ключевое слово см. в разделе Голосовая активация и множественный голосовой помощник.
Пример
Ниже приведен пример использования.
EVT_ACX_KEYWORDSPOTTER_ASSIGN_ARM DspC_EvtAcxKeywordSpotterAssignArm;
PAGED_CODE_SEG
NTSTATUS DspC_EvtAcxKeywordSpotterAssignArm(
_In_ ACXKEYWORDSPOTTER KeywordSpotter,
_In_ GUID * EventId,
_In_ BOOLEAN Arm
)
{
PAGED_CODE();
PDSP_KEYWORDSPOTTER_CONTEXT keywordSpotterCtx;
CKeywordDetector * keywordDetector = NULL;
keywordSpotterCtx = GetDspKeywordSpotterContext(KeywordSpotter);
keywordDetector = (CKeywordDetector*)keywordSpotterCtx->KeywordDetector;
RETURN_NTSTATUS_IF_FAILED(keywordDetector->SetArmed(*EventId, Arm));
// the following code is for example only, after arming the
// requested keyword we immediately trigger a detection
// so that the automated tests do not block.
if (Arm)
{
CONTOSO_KEYWORDDETECTIONRESULT detectionResult;
// notify the keyword detector that we have a notification, to populate
// timestamp information for this detection.
keywordDetector->NotifyDetection();
// fill in the detection specific information
detectionResult.EventId = *EventId;
detectionResult.Header.Size = sizeof(CONTOSO_KEYWORDDETECTIONRESULT);
detectionResult.Header.PatternType = CONTOSO_KEYWORDCONFIGURATION_IDENTIFIER2;
detectionResult.KeywordStartTimestamp = keywordDetector->GetStartTimestamp();
detectionResult.KeywordStopTimestamp = keywordDetector->GetStopTimestamp();
keywordDetector->GetDetectorData(*EventId, &(detectionResult.ContosoDetectorResultData));
RETURN_NTSTATUS_IF_FAILED(AcxPnpEventGenerateEvent(keywordSpotterCtx->Event, &detectionResult, sizeof(CONTOSO_KEYWORDDETECTIONRESULT)));
}
return STATUS_SUCCESS;
}
Требования ACX
Минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.
Требования
Требование | Значение |
---|---|
Заголовок | acxelements.h |
IRQL | PASSIVE_LEVEL |