PROTOCOL_CO_AF_REGISTER_NOTIFY 콜백 함수(ndis.h)
ProtocolCoAfRegisterNotify 함수는 연결 지향 NDIS 클라이언트에서 사용됩니다. 모든 연결 지향 NDIS 클라이언트에는 ProtocolCoAfRegisterNotify 함수를 완벽하게 작동해야 합니다. 독립 실행형 연결 지향 호출 관리자는 단순히 제어를 반환하는 protocolCoAfRegisterNotify 함수에 등록했습니다.
통사론
PROTOCOL_CO_AF_REGISTER_NOTIFY ProtocolCoAfRegisterNotify;
VOID() ProtocolCoAfRegisterNotify(
[in] NDIS_HANDLE ProtocolBindingContext,
[in] PCO_ADDRESS_FAMILY AddressFamily
)
{...}
매개 변수
[in] ProtocolBindingContext
클라이언트 프로토콜이 바인딩당 런타임 상태를 유지하는 클라이언트 할당 컨텍스트 영역에 대한 핸들을 지정합니다. 클라이언트의 ProtocolBindAdapterEx 함수는 NdisOpenAdapterEx호출할 때 이 핸들을 제공했습니다.
[in] AddressFamily
호출을 통해 이러한 서비스를 NDIS에 등록한 호출 관리자가 제공하는 신호 프로토콜 지원을 설명하는 버퍼에 대한 포인터 NdisCmRegisterAddressFamilyEx 또는 NdisMCmRegisterAddressFamilyEx.
반환 값
없음
발언
protocolCoAfRegisterNotify 호출은 클라이언트가 바인딩된 기본 연결 지향 NIC에 특정 호출 관리자 또는 MCM 드라이버의 호출 관리 서비스를 보급합니다.
ProtocolCoAfRegisterNotifyAddressFamily 데이터를 검사하여 클라이언트가 이 특정 호출 관리자의 서비스를 사용할 수 있는지 여부를 확인합니다. 클라이언트가 AddressFamily (M)CM 제공 데이터를 수정할 수 있는지 여부는 호출 관리자의 특정 신호 프로토콜 지원에 따라 달라집니다.
클라이언트가 제공된 호출 관리 서비스를 허용할 수 없다고 판단하면 ProtocolCoAfRegisterNotify 제어를 반환하고, NDIS는 동일한 ProtocolBindingContext 핸들 및 이 또는 다른 호출 관리자가 제공하는 AF 사양을 사용하여 ProtocolCoAfRegisterNotify 다시 호출할 수 있습니다. 그렇지 ProtocolAfRegisterNotify 클라이언트에 대한 AF별 컨텍스트 영역을 할당하고 AddressFamily 포인터를 사용하여 NdisClOpenAddressFamilyEx 호출합니다. 이 호출이 성공하면 클라이언트는 이 호출 관리자의 서비스를 사용하여 후속 연결 지향 작업을 위해 ProtocolClXxx 함수를 NDIS에 등록합니다.
예를 들어 protocolCoAfRegisterNotify 또는 protocolClOpenAfCompleteEx 호출할 수 있습니다. NdisInitializeNPagedLookasideList는 SAP당 동적 할당 및 릴리스, VC당 및/또는 이후에 클라이언트가 필요로 하는 파티별 컨텍스트 영역의 릴리스를 준비하기 위해 하나 이상의 시간을.
들어오는 호출을 수락하는 경우 클라이언트의 ProtocolCoAfRegisterNotify 또는 ProtocolClOpenAfCompleteEx 함수는 일반적으로 하나 이상의 SAP를 호출 관리자에 등록합니다. 해당 호출 관리자의 AF를 연 후 클라이언트는 SAP별 상태 영역을 할당하고 NdisClOpenAddressFamilyEx가져온 NdisAfHandle NdisClRegisterSap를 한 번 이상 호출할 수 있습니다. 발신 호출을 하는 경우 클라이언트는 VC별 상태 영역을 할당하고 NdisCoCreateVc 사용하여 자체 클라이언트 중 하나에서 들어오는 요청을 예상하여 원격 노드로 나가는 호출을 할 수 있습니다.
예제
ProtocolCoAfRegisterNotify 함수를 정의하려면 먼저 정의하는 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버 , SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 코드 분석을데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.예를 들어 "MyCoAfRegisterNotify"라는 ProtocolCoAfRegisterNotify 함수를 정의하려면 이 코드 예제와 같이 PROTOCOL_CO_AF_REGISTER_NOTIFY 형식을 사용합니다.
PROTOCOL_CO_AF_REGISTER_NOTIFY MyCoAfRegisterNotify;
그런 다음 다음과 같이 함수를 구현합니다.
_Use_decl_annotations_
VOID
MyCoAfRegisterNotify(
NDIS_HANDLE ProtocolBindingContext,
PCO_ADDRESS_FAMILY AddressFamily
)
{...}
PROTOCOL_CO_AF_REGISTER_NOTIFY 함수 형식은 Ndis.h 헤더 파일에 정의됩니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 PROTOCOL_CO_AF_REGISTER_NOTIFY 함수 형식에 적용되는 주석이 사용되는지 확인합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버함수 역할 형식을 사용하여 함수 선언을 참조하세요.
Use_decl_annotations대한 자세한 내용은 함수 동작 주석참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(ProtocolCoAfRegisterNotify(NDIS 5.1 참조)에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(ProtocolCoAfRegisterNotify(NDIS 5.1) 참조)에 대해 지원됩니다. |
대상 플랫폼 | Windows |
헤더 | ndis.h(Ndis.h 포함) |
IRQL | PASSIVE_LEVEL |