SAN 서비스 공급자에 대한 IOCTL 구현

SAN 서비스 공급자가 프록시 드라이버에 I/O 컨트롤(IOCTL) 요청을 보내는 경우 드라이버는 이러한 요청을 처리하기 위해 IRP_MJ_DEVICE_CONTROL 디스패치 루틴을 구현해야 합니다. IOCTL 요청은 드라이버의 NIC에 할당된 IP 주소 목록(예: 메모리 할당 또는 해제 요청)을 검색하는 요청일 수 있습니다. DriverEntry 루틴은 디스패치 루틴의 진입점을 지정해야 합니다.

프록시 드라이버의 디바이스 제어 루틴은 디바이스 컨트롤 루틴이 루틴에 전달된 IRP에 대한 포인터를 전달하는 IoGetCurrentIrpStackLocation 함수를 호출합니다. 그런 다음 디바이스 제어 루틴은 수신된 IOCTL 요청을 확인하고 그에 따라 요청을 처리합니다.

현재 IOCTL 요청이 완료되면 디바이스 제어 루틴은 IoCompleteRequest 함수를 호출하고 작업의 상태 전달합니다. 이 상태 SAN 서비스 공급자에게 반환됩니다.