PROTOCOL_CL_INCOMING_CLOSE_CALL 콜백 함수(ndis.h)
ProtocolClIncomingCloseCall 함수는 모든 연결 지향 NDIS 클라이언트에서 사용됩니다. 이러한 모든 클라이언트에는 ProtocolClIncomingCloseCall 함수를 완벽하게 작동해야 합니다.
통사론
PROTOCOL_CL_INCOMING_CLOSE_CALL ProtocolClIncomingCloseCall;
void ProtocolClIncomingCloseCall(
[in] NDIS_STATUS CloseStatus,
[in] NDIS_HANDLE ProtocolVcContext,
[in] PVOID CloseData,
[in] UINT Size
)
{...}
매개 변수
[in] CloseStatus
연결 중단의 원인을 나타내는 상태를 지정합니다. 일반적으로 호출에 대한 원격 당사자가 연결을 닫도록 요청했음을 나타내기 위해 NDIS_STATUS_SUCCESS. 다른 값은 네트워크의 문제로 인해 호출 관리자가 연결을 종료했음을 나타냅니다.
[in] ProtocolVcContext
연결을 닫고 있는 VC에 대한 클라이언트의 VC별 컨텍스트 영역에 대한 핸들을 지정합니다. CloseStatus의 값이관계없이 클라이언트는 이 컨텍스트 영역에 저장된 NdisVcHandle 지정된 VC에서 데이터를 보내거나 받을 수 없습니다.
[in] CloseData
프로토콜별 닫기 메시지를 포함하는 버퍼에 대한 포인터로, 호출 관리자가 네트워크를 통해 수신한 원격 클라이언트에서 제공하거나 이 매개 변수를 NULL 수 있습니다.
CloseStatus NDIS_STATUS_SUCCESS 경우 기본 네트워크 매체가 연결을 닫을 때 데이터 전송을 지원하지 않는 경우 이 매개 변수는 NULL . 그러나 특정 호출 관리자는 네트워크의 문제로 인한 통화 중단 시 클라이언트에 추가 진단 정보를 전달하는 구조를 정의할 수 있습니다.
[in] Size
CloseData NULL 경우 CloseData버퍼의 크기(바이트)를 지정합니다.
반환 값
없음
발언
ProtocolClIncomingCloseCall 호출은 다음 중 하나가 발생했음을 나타냅니다.
- 호출 관리자는 NdisVcHandle 클라이언트가 ProtocolVcContext VC별 컨텍스트 영역에 저장한 것으로 식별되는 설정된 연결을 닫기 위해 네트워크를 통해 요청을 받았습니다.
- 호출 관리자는 네트워크 문제로 인해 설정된 연결에서 추가 데이터 전송을 방지할 수 있음을 발견했습니다.
지정된 VC가 단일 지점 또는 다중 지점 연결이든 관계없이 ProtocolClIncomingCloseCallNdisCloseCall 호출하여 클라이언트가 이 특정 VC에 대한 데이터를 보내려고 시도하거나 수신하지 않을 것임을 인정해야 합니다. 호출 관리자가 이 VC를 만든 경우 ProtocolClIncomingCloseCallNdisCloseCall호출한 후 제어권을 반환해야 합니다. 호출 관리자가 만든 모든 VC를 삭제하거나 다시 사용하는 것은 호출 관리자의 책임입니다.
클라이언트가 원래 발신 호출에 대해 이 VC를 만든 경우 ProtocolClIncomingCloseCall 필요한 NdisClDropParty를 호출한 후 다음 중 하나를 수행하고 NdisCloseCall 수 있습니다.
- CloseStatus NDIS_STATUS_SUCCESS 경우 NdisCoDeleteVc 사용하여 VC를 분해하고 클라이언트의 VC별 컨텍스트 영역을 해제하거나 NdisCoCreateVc대한 후속 호출에서 다시 사용할 수 있도록 준비합니다.
- CloseStatus NDIS_STATUS_SUCCESS 경우 클라이언트가 만든 VC를 유지하고 NdisClMakeCall후속 호출에서 다시 사용할 VC별 컨텍스트 영역을 준비합니다.
- 그렇지 않으면 NdisCoDeleteVc VC를 해체하고 호출 관리자가 네트워크가 작동하지 않는 것으로 표시되면 VC별 컨텍스트 영역을 해제합니다.
예제
ProtocolClIncomingCloseCall 함수를 정의하려면 먼저 정의하는 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버 , SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 코드 분석을데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.예를 들어 "MyClIncomingCloseCall"이라는 ProtocolClIncomingCloseCall 함수를 정의하려면 다음 코드 예제와 같이 PROTOCOL_CL_INCOMING_CLOSE_CALL 형식을 사용합니다.
PROTOCOL_CL_INCOMING_CLOSE_CALL MyClIncomingCloseCall;
그런 다음 다음과 같이 함수를 구현합니다.
_Use_decl_annotations_
VOID
MyClIncomingCloseCall(
NDIS_STATUS CloseStatus,
NDIS_HANDLE ProtocolVcContext,
PVOID CloseData,
UINT Size
)
{...}
PROTOCOL_CL_INCOMING_CLOSE_CALL 함수 형식은 Ndis.h 헤더 파일에 정의됩니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 PROTOCOL_CL_INCOMING_CLOSE_CALL 함수 형식에 적용되는 주석이 사용되는지 확인합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버함수 역할 형식을 사용하여 함수 선언을 참조하세요.
Use_decl_annotations대한 자세한 내용은 함수 동작 주석참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(ProtocolClIncomingCloseCall(NDIS 5.1 참조)에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(ProtocolClIncomingCloseCall(NDIS 5.1 참조)에 대해 지원됩니다. |
대상 플랫폼 | Windows |
헤더 | ndis.h(Ndis.h 포함) |
IRQL | <= DISPATCH_LEVEL |