DRIVER_PROXY_ENDPOINT_FUNCTION 콜백은 DriverProxy 시스템에서 핫 스왑 가능한 엔드포인트 함수에 대한 함수 서명을 정의합니다. 드라이버 Hot-Swap 프레임워크를 통해 핫스왑할 수 있는 드라이버 함수를 나타내는 제네릭 함수 포인터 형식입니다.
Syntax
DRIVER_PROXY_ENDPOINT_FUNCTION DriverProxyEndpointFunction;
VOID DriverProxyEndpointFunction()
{...}
반환 값
None
비고
엔드포인트 함수는 드라이버를 언로드하지 않고 런타임에 바꿀 수 있는 드라이버 구현 함수입니다. DriverProxy 시스템은 호출을 각 엔드포인트 함수의 현재 구현으로 리디렉션하는 래퍼 함수를 만들어 핫 스왑 기능을 사용하도록 설정합니다.
이 콜백 형식은 DriverProxy 시스템의 제네릭 함수 포인터 역할을 합니다. 실제로 엔드포인트 함수는 특정 목적에 따라 서명이 다르지만 모두 DriverProxy 인프라 내에서 DRIVER_PROXY_ENDPOINT_FUNCTION 포인터로 처리됩니다.
드라이버 Hot-Swap V2에서 엔드포인트 함수는 컴파일러 및 링커 분석을 통해 빌드 프로세스 중에 자동으로 검색됩니다. 컴파일러는 핫스왑 가능해야 하는 함수를 식별하고 이진 파일의 섹션에 .shsept 해당 함수에 대한 정보를 배치합니다.
엔드포인트 함수의 주요 특징:
- DriverProxy 시스템을 통해 런타임에 교체할 수 있습니다.
- IoGetDriverProxyWrapperFromEndpoint에서 반환된 래퍼 함수를 통해 액세스합니다.
- IoCreateDriverProxyExtension에서 만든 DriverProxy 확장과 연결되어야 합니다.
- 해당 교체는 스레드 안전을 보장하기 위해 DriverProxy 인프라를 통해 조정됩니다.
엔드포인트 함수에 대한 실제 IRQL 요구 사항은 구현되는 특정 함수에 따라 달라집니다. 드라이버는 의도한 사용량의 IRQL 제약 조건에 따라 엔드포인트 함수를 디자인해야 합니다.
요구 사항
| 요구 사항 | 가치 |
|---|---|
| 대상 플랫폼 | 보편적 |
| Header | wdm.h |
| IRQL | 변수 |
참고하십시오
IoGetDriverProxyWrapperFromEndpoint