PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 콜백 함수(ndis.h)

ProtocolClModifyCallQoSComplete 함수는 연결의 서비스 품질을 동적으로 수정할 수 있는 연결 지향 NDIS 클라이언트에서 사용됩니다. 이러한 클라이언트에는 NdisClModifyCallQoS 로 시작하는 비동기 작업을 완료하려면 ProtocolClModifyCallQoSComplete 함수가 있어야 합니다. 그렇지 않으면 이러한 프로토콜 드라이버의 등록된 ProtocolClModifyCallQoSComplete 함수가 컨트롤을 반환할 수 있습니다.

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

구문

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

void ProtocolClModifyCallQosComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

매개 변수

[in] Status

다음 중 하나로 이 VC에 대한 호출 매개 변수를 수정하기 위한 클라이언트의 비동기 요청의 최종 상태를 지정합니다.

NDIS_STATUS_SUCCESS

QoS는 클라이언트의 요청에 따라 수정되었습니다.

NDIS_STATUS_RESOURCES

NDIS 또는 호출 관리자 중 하나가 충분한 리소스를 동적으로 할당할 수 없으므로 QoS를 수정할 수 없습니다.

NDIS_STATUS_INVALID_DATA

클라이언트가 NdisClModifyCallQoS 에 제공한 호출 매개 변수가 잘못되었습니다.

NDIS_STATUS_FAILURE

호출 관리자는 네트워크 또는 다른 연결 지향 네트워크 구성 요소의 오류로 인해 QoS를 변경할 수 없습니다.

NDIS_STATUS_XXX

호출 관리자가 QoS를 변경하지 못했고 NDIS는 CM 결정 실패 상태를 클라이언트에 전파했습니다.

[in] ProtocolVcContext

클라이언트가 NdisCoCreateVc 를 호출하여 나가는 호출 요청에 대해 VC를 설정하거나 클라이언트가 이 VC에서 들어오는 호출을 수락한 경우 ProtocolCoCreateVc 함수에서 VC를 설정할 때 클라이언트가 원래 NDIS에 제공한 VC별 컨텍스트 영역에 대한 핸들을 지정합니다.

[in] CallParameters

클라이언트에서 지정한 QoS가 포함된 버퍼링된 CO_CALL_PARAMETERS 구조체에 대한 포인터는 요청했거나, 연결이 활성화될 때 설정된 이 VC의 원래 QoS(호출 관리자가 복원한 것)일 수 있습니다.

반환 값

없음

설명

ProtocolClModifyCallQoSComplete에 대한 호출은 호출 관리자가 활성 VC의 서비스 품질을 변경하기 위해 클라이언트에서 시작한 요청 처리를 완료했음을 나타냅니다. 예를 들어 기본 네트워크 매체가 동적 QoS 변경을 지원하는 경우 클라이언트는 활성 VC에서 언제든지 수정을 요청할 수 있습니다.

클라이언트의 NdisClModifyCallQoS 호출이 성공하면 ProtocolClModifyCallQoSComplete는 컨트롤을 반환하기만 하면 QoS 변경 사항을 수락할 수 있습니다. 그렇지 않으면 클라이언트의 개발자가 가능한 재협상 수에 적절한 제한을 두는 한 ProtocolClModifyCallQoSComplete 는 호출 관리자와 추가 협상에 참여할 수 있습니다. 또는 ProtocolClModifyCallQoSComplete 는 호출 관리자가 QoS 변경 요청을 거부하고 이전에 설정된 QoS가 클라이언트에서 허용되지 않는 상태가 될 때마다 NdisCloseCall 을 사용하여 호출을 중단하기만 하면 됩니다.

예제

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

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

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

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

_Use_decl_annotations_
VOID
 MyClModifyCallQoSComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

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

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

요구 사항

   
지원되는 최소 클라이언트 Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(ProtocolClModifyCallQoSComplete(NDIS 5.1) 참조)에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(ProtocolClModifyCallQoSComplete(NDIS 5.1) 참조)에 대해 지원됩니다.
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL <= DISPATCH_LEVEL

참조

CO_CALL_PARAMETERS

NdisCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc