EVT_ACX_STREAM_PAUSE 콜백 함수(acxstreams.h)

EvtAcxStreamPause 이벤트는 드라이버에 스트림 상태를 실행에서 일시 중지로 전환하도록 지시합니다.

구문

EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;

NTSTATUS EvtAcxStreamPause(
  ACXSTREAM Stream
)
{...}

매개 변수

Stream

ACXSTREAM 개체는 회로에서 만든 오디오 스트림을 나타냅니다. 스트림은 부모 회로의 요소를 기반으로 만든 요소 목록으로 구성됩니다. 자세한 내용은 ACX - ACX 개체 요약을 참조하세요.

반환 값

호출에 성공하면 를 반환합니다 STATUS_SUCCESS . 그렇지 않으면 적절한 오류 코드를 반환합니다. 자세한 내용은 NTSTATUS 값 사용을 참조하세요.

설명

AcxStream은 다양한 상태를 지원합니다. 이러한 상태는 오디오가 흐르는 경우(실행 상태), 오디오가 흐르지 않지만 오디오 하드웨어가 준비(PAUSE 상태) 또는 오디오가 흐르지 않고 오디오 하드웨어가 준비되지 않음(STOP 상태)을 나타냅니다.

EvtAcxStreamPause 이벤트는 스트림 상태를 실행 상태에서 일시 중지 상태로 전환합니다. 스트림이 일시 중지 상태가 되면 드라이버는 EvtAcxStreamRun 이벤트를 수신하여 실행 상태로 전환하거나 드라이버가 EvtAcxStreamReleaseHardware 이벤트를 수신하여 중지 상태로 전환할 수 있습니다.

ACX 디바이스 전원을 끄고 제거하는 동안 스트림이 있는 경우 ACX는 EvtAcxStreamPause를 호출하여 스트림을 일시 중지로 전환합니다. 인스턴스 범위가 Stream.

ACX 이벤트는 이 표에 설명된 대로 KS 상태와 유사합니다.

시작 상태 종료 상태 ACX 드라이버 이벤트 호출 참고
STOP 취득 PrepareHardware 드라이버가 하드웨어 할당 및 준비를 수행합니다.
취득 일시 중지 (통화 없음)
일시 중지 실행 실행
실행 일시 중지 일시 중지
일시 중지 취득 (통화 없음)
취득 STOP ReleaseHardware 드라이버가 하드웨어 할당을 해제합니다.

예제

예제 사용법은 다음과 같습니다.

    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamPause = EvtStreamPause;
    ...
    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
#pragma code_seg("PAGE")
NTSTATUS
EvtStreamPause(
    _In_ ACXSTREAM Stream
    )
{
    PSTREAM_CONTEXT ctx;
    NTSTATUS        status = STATUS_SUCCESS;

    PAGED_CODE();

    ctx = GetStreamContext(Stream);

    status = TransitionStreamToPause(Stream);

    ctx->StreamState = AcxStreamStatePause;

    return status;
}

ACX 요구 사항

최소 ACX 버전: 1.0

ACX 버전에 대한 자세한 내용은 ACX 버전 개요를 참조하세요.

요구 사항

요구 사항
헤더 acxstreams.h
IRQL PASSIVE_LEVEL

추가 정보