MINIPORT_CO_ACTIVATE_VC 콜백 함수(ndis.h)

연결 지향 미니포트에는 MiniportCoActivateVc 함수가 필요합니다. MiniportCoActivateVc 는 가상 연결이 활성화되고 있음을 미니포트 드라이버에 나타내기 위해 NDIS에서 호출됩니다.

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

구문

MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;

NDIS_STATUS MiniportCoActivateVc(
  [in]      NDIS_HANDLE MiniportVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

매개 변수

[in] MiniportVcContext

미니포트 드라이버가 VC별 상태를 유지하는 미니포트 드라이버 할당 컨텍스트 영역에 대한 핸들을 지정합니다. 미니포트 드라이버는 MiniportCoCreateVc 함수에서 NDIS에 이 핸들을 제공했습니다.

[in, out] CallParameters

호출 관리자가 지정한 대로 이 VC에 대해 설정할 호출 매개 변수를 지정합니다. 출력 시 미니포트 드라이버는 특정 플래그가 CO_CALL_PARAMETERS 구조에 설정된 경우 변경된 호출 매개 변수를 반환합니다.

반환 값

반환 코드 설명
NDIS_STATUS_SUCCESS
VC가 성공적으로 활성화되었음을 나타냅니다.
NDIS_STATUS_PENDING
미니포트 드라이버가 VC를 비동기적으로 활성화하는 요청을 완료했음을 나타냅니다. 미니포트 드라이버가 작업을 완료한 경우 호출해야 합니다. NdisMCoActivateVcComplete.
NDIS_STATUS_INVALID_DATA
이 미니포트 드라이버가 지원하는 미디어 유형에 대해 CallParameters 에 지정된 호출 매개 변수가 잘못되었거나 잘못되었음을 나타냅니다.
NDIS_STATUS_RESOURCES
미니포트 드라이버가 활성 VC에 대한 상태 정보를 유지하는 데 필요한 모든 필수 리소스를 할당할 수 없기 때문에 미니포트 드라이버가 VC를 활성화할 수 없음을 나타냅니다.

설명

미니포트 드라이버는 CallParameters에 지정된 대로 이 VC에 대한 호출 매개 변수의 유효성을 검사하여 어댑터가 요청된 호출을 지원할 수 있는지 확인해야 합니다. 요청된 호출 매개 변수를 충족할 수 없는 경우 미니포트 드라이버는 NDIS_STATUS_INVALID_DATA 요청을 실패해야 합니다.

MiniportCoActivateVc 는 이미 활성 호출에 대한 호출 매개 변수를 변경하기 위해 단일 VC에 대해 여러 번 호출할 수 있습니다. 모든 호출에서 미니포트 드라이버는 매개 변수의 유효성을 검사하고 요청을 충족하기 위해 어댑터에 필요한 대로 모든 처리를 수행해야 합니다. 그러나 지정된 호출 매개 변수를 설정할 수 없는 경우 연결 지향 클라이언트 또는 호출 관리자가 이전 호출 매개 변수를 사용하여 데이터를 계속 보내거나 받을 수 있으므로 MiniportCoActivateVc 는 VC를 사용 가능한 상태로 유지해야 합니다.

callParameters-MediaParameters-Flags>>의 호출 매개 변수 구조에서 ROUND_UP_FLOW 또는 ROUND_DOWN_FLOW 플래그가 설정된 경우, 미니포트 드라이버는 설정된 적절한 플래그에 따라 흐름 속도가 반올림된 후 VC의 실제 유속을 반환하도록 요청되었습니다. 이러한 플래그가 설정되었기 때문에 미니포트 드라이버가 호출 매개 변수를 변경하는 경우 CallParameters에서 VC에 사용 중인 실제 호출 매개 변수를 반환해야 합니다.

호출 매개 변수가 허용되는 경우 MiniportCoActivateVc 는 필요에 따라 어댑터와 통신하여 가상 연결을 통해 데이터를 받거나 전송하도록 어댑터를 준비합니다(즉, 프로그래밍 수신 버퍼).

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

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

MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCoActivateVc(
    NDIS_HANDLE  MiniportVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

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

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

요구 사항

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

참고 항목

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete