PROTOCOL_CM_ADD_PARTY 콜백 함수(ndis.h)

ProtocolCmAddParty 함수는 필수 함수입니다. ProtocolCmAddParty 는 미디어별 매개 변수를 설정하여 기존 멀티포인트 호출에 파티를 추가하고, 새 파티의 상태 데이터를 저장하고, 파티가 호출에 추가되도록 합니다.

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

구문

PROTOCOL_CM_ADD_PARTY ProtocolCmAddParty;

NDIS_STATUS ProtocolCmAddParty(
  [in]      NDIS_HANDLE CallMgrVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [in]      NDIS_HANDLE NdisPartyHandle,
  [out]     PNDIS_HANDLE CallMgrPartyContext
)
{...}

매개 변수

[in] CallMgrVcContext

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

[in, out] CallParameters

기존 호출에 추가되는 파티의 연결 지향 클라이언트에서 지정한 매개 변수를 포함하는 CO_CALL_PARAMETERS 구조체 에 대한 포인터입니다.

[in] NdisPartyHandle

기존 가상 연결에 추가할 멀티포인트 파티를 고유하게 식별하는 NDIS에서 제공하는 핸들을 지정합니다. 이 핸들은 호출 관리자에 대해 불투명하며 NDIS 라이브러리 사용을 위해 예약됩니다.

[out] CallMgrPartyContext

반환 시 호출 관리자가 다중 포인트 호출에 대해 이 당사자에 대한 상태를 유지하는 호출 관리자 제공 컨텍스트 영역에 대한 핸들을 지정합니다.

반환 값

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

반환 코드 설명
NDIS_STATUS_SUCCESS
통화 관리자가 파티에 대한 상태를 유지하는 데 필요한 리소스를 성공적으로 할당하고 통화에 파티를 성공적으로 추가했음을 나타냅니다.
NDIS_STATUS_PENDING
통화 관리자가 파티 추가 요청을 비동기적으로 완료함을 나타냅니다. 통화 관리자가 파티 추가를 위한 모든 작업을 완료한 경우 NdisCmAddPartyComplete 를 호출하여 NDIS에 이 작업이 완료되었음을 알릴 수 있어야 합니다.
NDIS_STATUS_RESOURCES
호출 관리자가 연결에 파티를 추가하기 위해 리소스를 할당 및/또는 초기화할 수 없음을 나타냅니다.
NDIS_STATUS_NOT_SUPPORTED
호출자가 CallParameters 의 호출 매개 변수에서 유효하지 않거나 사용할 수 없는 기능을 요청했거나 이 호출 관리자가 지원하는 미디어 유형이 다중 포인트 호출을 지원하지 않기 때문에 호출 관리자가 다중 포인트 호출에 파티를 추가할 수 없음을 나타냅니다.

설명

ProtocolCmAddParty 는 호출 관리자가 멀티포인트 호출에 추가하기 위해 NdisPartyHandle로 지정된 파티에 대한 상태 정보를 유지 관리하는 데 필요한 동적 리소스 및 구조의 필요한 할당을 수행합니다. 이러한 리소스에는 메모리 버퍼, 데이터 구조, 이벤트 및 기타 유사한 리소스가 포함될 수 있지만 이에 국한되지는 않습니다. 또한 통화 관리자는 이 함수에서 관련 당사자별 구조를 초기화해야 합니다.

호출 관리자가 할당하는 파티별 상태 영역에서 호출 관리자는 이후 호출에서 참조를 위해 NdisPartyHandle에 지정된 핸들을 저장해야 합니다. 호출 관리자가 해당 파티별 상태 영역 초기화를 할당하고 완료한 후에는 제어를 NDIS로 반환하기 전에 상태 버퍼의 주소를 CallMgrPartyContext 핸들로 설정해야 합니다. 이렇게 하려면 핸들을 역참조하고 상태 버퍼에 대한 포인터를 핸들 값으로 저장합니다. 예를 들면 다음과 같습니다.

*CallMgrPartyContext = SomeBuffer;

통화 관리자는 필요에 따라 네트워크 하드웨어 또는 기타 미디어 관련 행위자와 필요한 통신을 수행하여 CallParameters 의 호출 매개 변수로 지정된 당사자를 기존 멀티포인트 호출에 추가합니다.

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

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

MINIPORT_ADD_DEVICE MyCmAddParty;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCmAddParty(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters,
    NDIS_HANDLE  NdisPartyHandle,
    PNDIS_HANDLE  CallMgrPartyContext
    )
  {...}

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

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

요구 사항

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

추가 정보

NdisClAddParty

ProtocolClAddPartyComplete