PROTOCOL_CM_ADD_PARTY 콜백 함수(ndis.h)
ProtocolCmAddParty 함수는 필수 함수입니다. ProtocolCmAddParty 기존 멀티포인트 호출에 파티를 추가하고, 새 당사자의 상태 데이터를 저장하고, 파티가 호출에 추가되도록 미디어별 매개 변수를 설정합니다.
통사론
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 작업 상태를 다음 중 하나로 반환합니다.
반환 코드 | 묘사 |
---|---|
|
통화 관리자가 파티에 대한 상태를 유지하는 데 필요한 리소스를 성공적으로 할당하고 통화에 당사자를 성공적으로 추가했음을 나타냅니다. |
|
호출 관리자가 파티 추가 요청을 비동기적으로 완료함을 나타냅니다. 호출 관리자가 파티 추가를 위한 모든 작업을 완료한 경우 NdisCmAddPartyComplete 호출하여 NDIS에 이 작업이 완료되었음을 알릴 수 있어야 합니다. |
|
호출 관리자가 연결에 파티를 추가하기 위해 리소스를 할당 및/또는 초기화할 수 없음을 나타냅니다. |
|
호출자가 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 |