PROTOCOL_CM_MODIFY_QOS_CALL 콜백 함수(ndis.h)

ProtocolCmModifyCallQoS 함수가 필요합니다. ProtocolCmModifyCallQoS 는 연결 지향 클라이언트가 기존 VC(가상 연결)에 대한 호출 매개 변수를 변경하도록 요청할 때 NDIS에 의해 호출됩니다. 기본 네트워크 매체가 QoS를 지원하지 않는 경우 ProtocolCmModifyQoS 는 단순히 NDIS_STATUS_NOT_SUPPORTED 반환해야 합니다.

참고PROTOCOL_CM_MODIFY_QOS_CALL 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.
 

구문

PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;

NDIS_STATUS ProtocolCmModifyQosCall(
  [in] NDIS_HANDLE CallMgrVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

매개 변수

[in] CallMgrVcContext

호출 관리자가 VC별 상태를 유지하는 호출 관리자 할당 컨텍스트 영역에 대한 핸들을 지정합니다. 호출 관리자는 ProtocolCoCreateVc 함수에 대해 이 핸들을 NDIS에 제공했습니다.

[in] CallParameters

VC 에 대한 연결 지향 클라이언트에서 지정한 대로 새 호출 매개 변수를 포함하는 CO_CALL_PARAMETERS 구조체에 대한 포인터입니다.

반환 값

ProtocolCmModifyQoS는 작업의 상태 다음 값 중 하나로 반환합니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
호출 관리자가 네트워크를 사용하여 호출의 매개 변수를 CallParameters 에 지정된 호출 매개 변수로 성공적으로 변경했음을 나타냅니다.
NDIS_STATUS_PENDING
호출 관리자가 호출 매개 변수를 비동기적으로 수정하는 요청을 완료했음을 나타냅니다. 호출 관리자가 호출 매개 변수를 수정하는 데 필요한 모든 작업을 완료한 경우 호출해야 합니다. NdisCmModifyCallQoSComplete.
NDIS_STATUS_RESOURCES
동적으로 할당된 리소스를 사용할 수 없기 때문에 호출 관리자가 VC의 호출 매개 변수를 변경할 수 없음을 나타냅니다.
NDIS_STATUS_INVALID_DATA
CallParameters에서 제공된 호출 매개 변수가 잘못되었거나 잘못되었기 때문에 호출 관리자가 VC의 호출 매개 변수를 변경할 수 없음을 나타냅니다.
NDIS_STATUS_FAILURE
네트워크 또는 다른 연결 지향 네트워크 구성 요소의 오류로 인해 호출 매개 변수를 제공된 호출 매개 변수로 설정할 수 없음을 나타냅니다.

설명

ProtocolCmModifyQoS 는 네트워크에서 필요로 하는 네트워크 제어 디바이스 또는 기타 미디어 관련 에이전트와 통신하여 설정된 가상 연결에 대한 미디어별 호출 매개 변수를 수정합니다. 호출 관리자가 네트워크 제어 에이전트(즉, 네트워킹 스위치)와 통신해야 하는 경우 ProtocolBindAdapterEx 함수에서 설정한 네트워크 제어 에이전트에 대한 가상 연결을 사용해야 합니다. 독립 실행형 통화 관리자는 NdisCoSendNetBufferLists를 호출하여 네트워크 에이전트와 통신했습니다. 통합 통화 관리 지원이 있는 미니포트 드라이버는 NdisCoSendNetBufferLists를 호출하지 않습니다. 대신 이러한 드라이버는 단순히 네트워크를 통해 대상 네트워크 에이전트로 데이터를 전송합니다.

네트워크와 통신한 후 변경 내용이 성공한 경우 호출 관리자는 새 호출 매개 변수를 사용하여 NdisCmActivateVc 를 호출해야 합니다. 이는 NDIS 및/또는 연결 지향 미니포트 드라이버에 호출 매개 변수가 변경되었음을 알리고 미니포트 드라이버에 해당 매개 변수의 유효성을 검사할 수 있는 기회를 제공합니다.

네트워크에서 새 호출 매개 변수를 수락할 수 없거나 기본 미니포트 드라이버가 매개 변수를 수락할 수 없는 경우 호출 관리자는 수정을 시도하기 전에 존재했던 상태로 가상 연결을 복원하고 NDIS_STATUS_FAILURE 반환해야 합니다.

ProtocolCmModifyCallQoS 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾을 수 있으며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 " MyCmModifyCallQoS"라는 ProtocolCmModifyCallQoS 함수를 정의하려면 다음 코드 예제와 같이 PROTOCOL_CM_MODIFY_QOS_CALL 형식을 사용합니다.

PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
NDIS_STATUS
 MyCmModifyCallQoS(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

PROTOCOL_CM_MODIFY_QOS_CALL 함수 형식은 Ndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 PROTOCOL_CM_MODIFY_QOS_CALL 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작 주석 지정을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(ProtocolCmModifyCallQoS(NDIS 5.1) 참조)에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(ProtocolCmModifyCallQoS(NDIS 5.1) 참조)에 대해 지원됩니다.
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 SpinLockBalanced(ndis), SpinLockDpr(ndis)

추가 정보

NdisCmActivateVc

NdisCmModifyCallQoSComplete

NdisCoSendNetBufferLists

ProtocolCoCreateVc