다음을 통해 공유


PREGISTER_EVENT_CALLBACK 콜백 함수(hdaudio.h)

RegisterEventCallback 루틴은 코덱 또는 코덱의 원치 않는 응답에 대한 콜백 루틴을 등록합니다.

RegisterEventCallback 루틴에 대한 함수 포인터 형식은 다음과 같이 정의됩니다.

구문

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

NTSTATUS PregisterEventCallback(
  [in]  PVOID _context,
  [in]  PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
  [in]  PVOID Context,
  [out] PUCHAR Tag
)
{...}

매개 변수

[in] _context

HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 또는 HDAUDIO_BUS_INTERFACE_BDL 구조체의 Context 멤버의 컨텍스트 값을 지정합니다.

[in] Routine

콜백 루틴에 대한 함수 포인터입니다. 이 매개 변수는 PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK 형식의 유효한 NULL이 아닌 함수 포인터여야 합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

[in] Context

콜백 루틴에 대한 컨텍스트 값을 지정합니다. 호출자는 컨텍스트 값을 PVOID 형식으로 캐스팅합니다. 코덱이 지정된 태그를 포함하는 원치 않는 응답을 생성하면 HD Audio Bus 드라이버는 컨텍스트 값을 콜백 루틴에 호출 매개 변수로 전달합니다.

[out] Tag

원치 않는 응답을 식별하는 태그 값을 검색합니다. 이 매개 변수는 루틴이 태그 값을 쓰는 호출자가 할당한 UCHAR 변수를 가리킵니다. 호출자는 원치 않는 응답을 생성하기 위해 코덱 또는 코덱을 프로그래밍할 때 이 태그 값을 지정해야 합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

RegisterEventCallback 은 호출이 이벤트 등록에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 루틴이 적절한 오류 코드를 반환합니다. 다음 표에서는 가능한 반환 상태 코드를 보여줍니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
작업을 완료하는 데 사용할 수 있는 리소스가 충분하지 않음을 나타냅니다.

설명

이 루틴은 코덱에서 원치 않는 응답에 대한 콜백 루틴을 등록합니다. 루틴은 태그를 출력하여 원치 않는 응답을 식별합니다. HD 오디오 버스 드라이버가 태그 값이 일치하는 코덱에서 원치 않는 응답을 발견하면 루틴은 IRQL DISPATCH_LEVEL 지정된 콜백 루틴을 호출하고 지정된 컨텍스트 값을 호출 매개 변수로 루틴에 전달합니다.

RegisterEventCallback 호출 후 함수 드라이버는 코덱 또는 코덱을 프로그래밍하여 지정된 태그를 사용하여 원치 않는 응답을 생성합니다.

루틴은 등록된 각 콜백 루틴에 고유한 태그를 할당합니다. 태그와 콜백 루틴 간의 고유한 연결은 콜백 루틴이 등록된 상태로 유지되는 한 유지됩니다. 함수 드라이버는 UnregisterEventCallback을 호출하여 콜백 루틴의 등록을 삭제할 수 있습니다.

현재 버스 드라이버는 코덱당 최대 64개의 고유 태그를 제공할 수 있습니다.

콜백 매개 변수는 함수 드라이버의 콜백 루틴에 대한 함수 포인터입니다. 콜백 루틴에 대한 함수 포인터 형식은 다음과 같이 정의됩니다.

typedef VOID
  (*PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)
    (HDAUDIO_CODEC_RESPONSE, PVOID);

첫 번째 호출 매개 변수는 명령에 대한 코덱의 응답을 지정하는 HDAUDIO_CODEC_RESPONSE 형식의 구조체입니다. 이 구조체는 값으로 전달됩니다. 두 번째 호출 매개 변수는 이전에 RegisterEventCallback에 전달된 callbackContext 값입니다. HD 오디오 버스 드라이버는 IRQL DISPATCH_LEVEL 콜백 루틴을 호출합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 hdaudio.h(Hdaudio.h 포함)
IRQL PASSIVE_LEVEL(설명 섹션 참조)

추가 정보

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

UnregisterEventCallback  

hdaudio.h