PROTOCOL_CM_DEACTIVATE_VC_COMPLETE 콜백 함수(ndis.h)

ProtocolCmDeactivateVcComplete 함수는 필수 함수입니다. ProtocolCmDeactivateVcComplete 는 기본 미니포트 드라이버(및 NDIS)가 NdisCmDeactivateVc 가 이전에 NDIS_STATUS_PENDING 반환한 VC를 비활성화하는 호출 관리자 시작 요청의 처리를 완료합니다.

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

구문

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;

void ProtocolCmDeactivateVcComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE CallMgrVcContext
)
{...}

매개 변수

[in] Status

비활성화의 최종 상태 지정합니다.

[in] CallMgrVcContext

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

반환 값

없음

설명

NDIS는 일반적으로 연결 지향 클라이언트를 대신하여 호출 관리자가 통화를 종료하는 컨텍스트에서 ProtocolCmDeactivateVcComplete 를 호출합니다. 호출 관리자는 일반적으로 ProtocolCmCloseCall 함수에서 NdisCmDeactivateVc를 호출합니다. NdisCmDeactivateVc가 NDIS_STATUS_PENDING 반환할 때마다 NDIS는 이후 ProtocolCmDeactivateVcComplete 함수를 호출합니다.

즉, 기본 연결 지향 미니포트 드라이버가 VC를 비활성화한 경우 NDIS는 ProtocolCmDeactivateVcComplete를 호출합니다. 비활성화의 마지막 상태 상태 에서 찾을 수 있습니다. 최종 상태 가능한 값에는 다음이 포함되지만 이에 국한되지는 않습니다.

ProtocolCmDeactivateVcComplete 는 상태 영역에서 플래그를 설정하여 연결이 비활성임을 나타내거나 VC가 활성 상태인 동안 사용되는 동적으로 할당된 리소스를 해제하는 등 가상 연결의 비활성화를 완료하는 데 필요한 후처리를 수행합니다.

비활성화가 완료되면 활성화에 사용된 VC에 대한 모든 호출 매개 변수가 더 이상 유효하지 않습니다. VC의 추가 사용은 새 호출 매개 변수 집합으로 다시 활성화하는 것을 제외하고는 금지됩니다.

통화 관리자는 VC 활성화를 위해 할당된 모든 리소스를 해제하고 가능한 한 빨리 제어를 반환해야 합니다. 호출 관리자가 이전에 ProtocolCmCloseCall 함수에서 NDIS_STATUS_PENDING 반환하고 호출을 닫는 모든 작업이 완료된 경우 ProtocolCmDeactivateVcComplete 는 이제 NdisCmCloseCallComplete를 호출해야 합니다.

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

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

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE MyCmDeactivateVcComplete;

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

_Use_decl_annotations_
VOID
 MyCmDeactivateVcComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  CallMgrVcContext
    )
  {...}

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

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

요구 사항

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

추가 정보

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall