Share via


PROTOCOL_CL_NOTIFY_CLOSE_AF 콜백 함수(ndis.h)

ProtocolClNotifyCloseAf 함수는 CoNDIS 클라이언트에 클라이언트가 연결된 AF(주소 패밀리)를 닫아야 한다는 것을 알 수 있습니다.

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

구문

PROTOCOL_CL_NOTIFY_CLOSE_AF ProtocolClNotifyCloseAf;

NDIS_STATUS ProtocolClNotifyCloseAf(
  [in] NDIS_HANDLE ClientAfContext
)
{...}

매개 변수

[in] ClientAfContext

연결된 AF에 대한 컨텍스트 영역에 대한 클라이언트 제공 핸들입니다. 클라이언트는 이 컨텍스트 영역을 할당하고 에 대한 호출에서 이 핸들을 NDIS에 전달했습니다. NdisClOpenAddressFamilyEx 함수입니다.

반환 값

ProtocolClNotifyCloseAf 는 다음 중 하나를 반환할 수 있습니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
클라이언트가 주소 패밀리를 성공적으로 닫았습니다.
NDIS_STATUS_PENDING
클라이언트가 이 요청을 비동기적으로 처리하고 있으며, 이 요청을 호출합니다.닫기 작업이 완료되면 NdisClNotifyCloseAddressFamilyComplete 함수가 작동합니다.
NDIS_STATUS_XXX
클라이언트가 드라이버로 결정된 이유로 요청을 실패했습니다.

설명

TheCoNDIS 클라이언트에는 ProtocolClNotifyCloseAf 함수가 필요합니다. NDIS는 호출 관리자가 ProtocolAfContext 매개 변수가 지정한 주소 패밀리(AF)를 닫아야 한다고 NDIS에 알린 경우 ProtocolClNotifyCloseAf를 호출합니다. 이에 대한 응답으로 클라이언트는 다음을 수행해야 합니다.

  1. 클라이언트에 활성 멀티포인트 연결이 있는 경우 단일 파티만 각 VC(다중 포인트 가상 연결)에서 활성 상태로 유지될 때까지 필요한 만큼 NdisClDropParty 함수를 호출합니다.
  2. 여전히 열려 있고 AF와 연결된 모든 호출을 닫기 위해 필요한 만큼 NdisCloseCall 함수를 호출합니다.
  3. 클라이언트가 호출 관리자에 등록한 모든 SAP(서비스 액세스 지점)를 등록 취소하는 데 필요한 횟수만큼 NdisClDeregisterSap 함수를 호출합니다.
  4. 다음을 호출합니다. NdisCloseAddressFamily 함수는 AF를 닫습니다.
클라이언트는 NDIS_STATUS_PENDING 반환하여 이러한 작업을 비동기적으로 완료할 수 있습니다. 클라이언트가 호출을 비동기적으로 완료하는 경우 이후에 를 호출해야 합니다.닫기 작업이 완료되면 NdisClNotifyCloseAddressFamilyComplete 함수가 작동합니다. 클라이언트가 NDIS_STATUS_PENDING 반환하지 않으면 닫기 작업이 완료됩니다. ProtocolClNotifyCloseAf가 반환됩니다.

NDIS는 IRQL <= DISPATCH_LEVEL ProtocolClNotifyCloseAf를 호출합니다.

AF가 열려 있는 동안 또는 을 사용하는 동안 클라이언트에서 NdisAfHandle 을 사용할 수 있습니다. ProtocolClNotifyCloseAf 작업이 보류 중입니다. 여기서 ProtocolClNotifyCloseAf 함수는 NDIS_STATUS_PENDING 반환하고 에서 핸들을 사용합니다.닫기 작업이 완료된 후 NdisClNotifyCloseAddressFamilyComplete 호출

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

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

PROTOCOL_CL_NOTIFY_CLOSE_AF MyClNotifyCloseAf;

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

_Use_decl_annotations_
NDIS_STATUS
 MyClNotifyCloseAf(
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

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

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

요구 사항

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

추가 정보

NdisClCloseAddressFamily

NdisClCloseCall

NdisClDeregisterSap

NdisClDropParty

NdisClNotifyCloseAddressFamilyComplete

NdisClOpenAddressFamilyEx