Share via


PROTOCOL_CL_DEREGISTER_SAP_COMPLETE 콜백 함수(ndis.h)

ProtocolClDeregisterSapComplete 함수는 연결 지향 NDIS 클라이언트에서 사용됩니다. 들어오는 호출을 수락하는 연결 지향 NDIS 클라이언트에는 NdisClDeregisterSap으로 시작하는 비동기 작업을 완료하기 위한 ProtocolClDeregisterSapComplete 함수가 있어야 합니다. 그렇지 않으면 이러한 프로토콜 드라이버의 등록된 ProtocolClDeregisterSapComplete 함수는 단순히 제어를 반환할 수 있습니다.

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

구문

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE ProtocolClDeregisterSapComplete;

void ProtocolClDeregisterSapComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolSapContext
)
{...}

매개 변수

[in] Status

다음 중 하나일 수 있는 SAP 등록을 취소하라는 클라이언트 요청의 최종 상태 지정합니다.

NDIS_STATUS_SUCCESS

SAP가 닫혔습니다. 클라이언트가 ProtocolSapContext 영역에 저장된 클라이언트의 이전에 등록된 SAP를 나타내는 NdisSapHandle이 이제 유효하지 않습니다.

NDIS_STATUS_FAILURE

NDIS는 AF 상태를 "닫기"로 표시했으므로 클라이언트가 호출할 때 NdisSapHandle 이 나타내는 연결된 SAP가 이미 릴리스되었습니다. NdisClDeregisterSap 이 발생했습니다.

NDIS_STATUS_XXX

호출 관리자가 CM 결정 이유로 SAP를 닫는 요청에 실패했으며 NDIS는 에서 반환한 상태 전파했습니다. Client에 대한 ProtocolCmDeregisterSap 함수입니다.

[in] ProtocolSapContext

원래 NdisClRegisterSap을 사용하여 NDIS에 전달된 SAP별 컨텍스트 영역에 대한 클라이언트 제공 핸들을 지정합니다. 호출 관리자가 이 SAP의 등록을 취소한 후 클라이언트는 컨텍스트 영역을 해제하거나 이 컨텍스트 영역을 다시 사용할 수 있습니다.

반환 값

없음

설명

ProtocolClDeregisterSapComplete에 대한 호출은 NdisClDeregisterSap에 대한 클라이언트의 이전 호출이 호출 관리자에 의해 처리되었음을 나타냅니다.

몇 가지 CM 결정된 이유로 호출 관리자가 등록 취소에 실패하지 않는 한 Client는 ProtocolClDeregisterSapComplete가 호출될 때 NdisSapHandle이 유효하지 않다고 고려해야 합니다. 따라서 ProtocolClDeregisterSapComplete 는 클라이언트가 할당한 SAP별 컨텍스트 영역을 해제하거나 NdisClRegisterSap에 대한 후속 호출에서 다시 사용할 수 있도록 준비할 수 있습니다.

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

예를 들어 이름이 " MyClDeregisterSapComplete"인 ProtocolClDeregisterSapComplete 함수를 정의하려면 이 코드 예제와 같이 PROTOCOL_CL_DEREGISTER_SAP_COMPLETE 형식을 사용합니다.

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE MyClDeregisterSapComplete;

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

_Use_decl_annotations_
VOID
 MyClDeregisterSapComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolSapContext
    )
  {...}

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

Use_decl_annotations 대한 자세한 내용은 함수 동작에 주석을 추가를 참조하세요.

요구 사항

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

추가 정보

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap