PROTOCOL_CL_ADD_PARTY_COMPLETE 콜백 함수(ndis.h)
ProtocolClAddPartyComplete 함수는 다중 포인트 연결을 설정하는 연결 지향 NDIS 클라이언트에 필요합니다. 이러한 클라이언트에는 NdisClAddParty로 시작하는 비동기 작업을 완료하려면 ProtocolClAddPartyComplete 함수 가 있어야 합니다. 그렇지 않으면 이러한 프로토콜 드라이버의 등록된 ProtocolClAddPartyComplete 함수가 컨트롤을 반환할 수 있습니다.
구문
PROTOCOL_CL_ADD_PARTY_COMPLETE ProtocolClAddPartyComplete;
void ProtocolClAddPartyComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolPartyContext,
[in] NDIS_HANDLE NdisPartyHandle,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
매개 변수
[in] Status
다음 중 하나일 수 있는 클라이언트 시작 추가 파티 작업의 최종 상태를 지정합니다.
NDIS_STATUS_SUCCESS
지정된 파티가 클라이언트의 활성 멀티포인트 VC에 추가되었습니다.
NDIS_STATUS_RESOURCES
NDIS에서 새 당사자를 추적할 수 있는 충분한 리소스를 할당할 수 없습니다.
NDIS_STATUS_FAILURE
클라이언트가 잘못된 NdisVcHandle 을 NdisClAddParty에 전달했습니다.
NDIS_STATUS_XXX
호출 관리자의 ProtocolCmAddParty 함수는 VC에 파티를 추가할 수 없는 이유를 나타내는 CM 결정 값을 반환했습니다.
[in] ProtocolPartyContext
원래 NdisClAddParty에 전달된 클라이언트 제공 핸들을 지정합니다.
[in] NdisPartyHandle
상태가 NDIS_STATUS_SUCCESS 경우 이 NDIS 제공 핸들은 이 당사자와 관련된 호출 관리자와 클라이언트 간의 연결을 나타냅니다. 그렇지 않으면 파티 추가 시도가 실패했고 클라이언트는 이 매개 변수를 잘못된 핸들로 간주해야 합니다.
[in] CallParameters
원래 클라이언트가 NdisClAddParty를 호출하기 위해 설정했지만 이후에 호출 관리자가 수정한 CO_CALL_PARAMETERS 형식 구조에 대한 포인터입니다.
반환 값
없음
설명
ProtocolClAddPartyComplete에 대한 호출은 클라이언트가 NdisClAddParty를 호출할 때 시작된 비동기 작업의 완료를 나타냅니다. 입력 상태가 NDIS_STATUS_SUCCESS 이외의 항목으로 설정된 경우 ProtocolClAddPartyComplete 는 ProtocolPartyContext 및 CallParameters 에서 클라이언트 할당 버퍼를 해제하거나 다시 사용할 수 있습니다.
파티 추가 시도가 성공하면 ProtocolClAddPartyComplete는 클라이언트의 ProtocolPartyContext 영역에서 이 파티와 관련된 NDIS 라이브러리 함수에 대한 후속 호출을 위해 입력 NdisPartyHandle을 저장해야 합니다. 예를 들어, 클라이언트가 나타내는 원격 당사자가 먼저 연결을 닫지 않는 한 클라이언트는 NdisClDropParty 에 대한 후속 호출에서 이 핸들을 전달해야 합니다.
CallParameters의 구조는 원래 클라이언트에 의해 할당되고 초기화되었으며, 이 포인터는 다음으로 전달되었습니다.
NdisClAddParty. 그러나 호출 관리자는 클라이언트의 추가 파티 요청을 처리하는 동안 네트워크 또는 신호 피어와 CM의 협상 결과를 반영하도록 클라이언트 제공 값을 수정했을 수 있습니다. 호출 관리자가 수정했는지 여부를 확인하기 위해 ProtocolClAddPartyComplete 는 이 구조체의 Flags 멤버에서 CALL_PARAMETERS_CHANGED 설정되었는지 여부를 확인할 수 있습니다. 이 경우 ProtocolClAddPartyComplete 는 CM의 수정이 허용되지 않는 한 Client가 ProtocolPartyContext 에서 이 호출에 대해 유지 관리하는 파티별 상태를 업데이트해야 합니다. 특정 신호 프로토콜은 클라이언트가 이 경우에 수행할 수 있는 작업을 결정합니다. 일반적으로 클라이언트는 CM 수정된 호출 매개 변수를 허용할 수 없는 경우 NdisClDropParty 를 호출합니다.
호출 관리자의 신호 프로토콜에 따라 CallParameters 의 트래픽 매개 변수는 특정 멀티포인트 연결의 모든 당사자에 대해 동일할 수 있습니다. 즉, 이러한 호출 관리자의 클라이언트는 클라이언트가 원래 NdisClMakeCall을 사용하여 설정한 멀티포인트 연결에 파티를 추가하므로 각 파티의 대상 주소만 제공하고 NdisClAddParty를 호출할 때마다 원래 멀티포인트 VC에 대해 설정된 대로 트래픽 매개 변수를 그대로 둘 수 있습니다.
예제
ProtocolClAddPartyComplete 함수를 정의하려면 먼저 정의하는 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버, SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 Code Analysis 오류를 찾는 데 도움이 되며 Windows 운영 체제에 대한 드라이버를 작성하기 위한 요구 사항입니다.예를 들어 " MyClAddPartyComplete"라는 ProtocolClAddPartyComplete 함수를 정의하려면 이 코드 예제와 같이 PROTOCOL_CL_ADD_PARTY_COMPLETE 형식을 사용합니다.
PROTOCOL_CL_ADD_PARTY_COMPLETE MyClAddPartyComplete;
그런 다음 다음과 같이 함수를 구현합니다.
_Use_decl_annotations_
VOID
MyClAddPartyComplete(
NDIS_STATUS Status,
NDIS_HANDLE ProtocolPartyContext,
NDIS_HANDLE NdisPartyHandle,
PCO_CALL_PARAMETERS CallParameters
)
{...}
PROTOCOL_CL_ADD_PARTY_COMPLETE 함수 형식은 Ndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 PROTOCOL_CL_ADD_PARTY_COMPLETE 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.
Use_decl_annotations 대한 자세한 내용은 함수 동작에 주석을 추가하세요.
요구 사항
| 지원되는 최소 클라이언트 | Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(ProtocolClAddPartyComplete(NDIS 5.1) 참조)에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(ProtocolClAddPartyComplete(NDIS 5.1) 참조)에 대해 지원됩니다. |
| 대상 플랫폼 | Windows |
| 헤더 | ndis.h(Ndis.h 포함) |
| IRQL | <= DISPATCH_LEVEL |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기