다음을 통해 공유


PROTOCOL_CL_CLOSE_CALL_COMPLETE 콜백 함수(ndis.h)

ProtocolCloseCallComplete 함수는 연결 지향 NDIS 클라이언트에서 사용됩니다. 모든 연결 지향 NDIS 클라이언트에는 시작되는 비동기 작업을 완료하려면 ProtocolCloseCallComplete 함수가 있어야 합니다.

NdisCloseCall.

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

구문

PROTOCOL_CL_CLOSE_CALL_COMPLETE ProtocolClCloseCallComplete;

void ProtocolClCloseCallComplete(
  [in]           NDIS_STATUS Status,
  [in]           NDIS_HANDLE ProtocolVcContext,
  [in, optional] NDIS_HANDLE ProtocolPartyContext
)
{...}

매개 변수

[in] Status

다음 중 하나일 수 있는 이 호출을 닫기 위한 클라이언트 요청의 최종 상태 지정합니다.

NDIS_STATUS_SUCCESS

호출 관리자가 지정된 VC에 있는 호출을 성공적으로 종료하고 VC를 비활성화했습니다.

NDIS_STATUS_XXX

호출 관리자가 CM으로 결정된 이유로 호출을 닫는 요청에 실패했고 NDIS는 ProtocolCmCloseCall 함수에서 반환한 상태 클라이언트에 전파했습니다.

[in] ProtocolVcContext

클라이언트의 VC별 컨텍스트 영역에 대한 핸들을 지정합니다. 이 핸들은 클라이언트가 원래 NdisCoCreateVc 를 사용하여 NDIS에 전달되었거나 ProtocolCoCreateVc 함수에서 NDIS로 반환된 핸들입니다.

[in, optional] ProtocolPartyContext

다중 포인트 연결을 나타내는 클라이언트에서 만든 VC의 마지막 남은 당사자에 대한 클라이언트의 파티별 컨텍스트 영역에 대한 핸들을 지정합니다. 그렇지 않으면 이 매개 변수는 NULL입니다.

반환 값

없음

설명

클라이언트에서 지정된 VC를 만들고 상태가 NDIS_STATUS_SUCCESS 경우 클라이언트는 이제 다음 중 하나를 수행할 수 있습니다.

  • NdisCoDeleteVc를 사용하여 VC를 분해하고 할당된 컨텍스트 영역을 해제하거나 다시 사용할 준비를 합니다.
  • VC별 컨텍스트 영역을 다시 초기화하고 해당 VC를 다시 사용하여 NdisClMakeCall과 다른 연결을 만듭니다.
호출 관리자가 VC를 만든 경우 ProtocolCloseCallComplete를 호출할 때 클라이언트는 NdisVcHandle이 잘못된 것으로 간주해야 합니다. 클라이언트는 이 NdisVcHandle 를 사용하여 더 이상 NdisCl/CoXxx 호출을 수행해서는 안 됩니다. ProtocolCloseCallComplete에서 컨트롤을 반환하면 호출 관리자가 해당 VC를 삭제하여 클라이언트의 ProtocolCoDeleteVc 함수를 호출할 수 있습니다. 호출 관리자는 만든 VC에서 다른 수신 전화를 디스패치하여 클라이언트에 대한 호출을 유발할 수도 있습니다. ProtocolClIncomingCall 함수입니다.

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

예를 들어 이름이 " MyCloseCallComplete"인 ProtocolCloseCallComplete 함수를 정의하려면 이 코드 예제와 같이 PROTOCOL_CL_CLOSE_CALL_COMPLETE 형식을 사용합니다.

PROTOCOL_CL_CLOSE_CALL_COMPLETE MyClCloseCallComplete;

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

_Use_decl_annotations_
VOID
 MyClCloseCallComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    NDIS_HANDLE  ProtocolPartyContext
    )
  {...}

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

Use_decl_annotations 대한 자세한 내용은 함수 동작에 주석을 추가를 참조하세요.

요구 사항

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

추가 정보

NdisClCloseCall

NdisClMakeCall

NdisCmCloseCallComplete

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolClIncomingCall

ProtocolCmCloseCall

ProtocolCoDeleteVc