实现 SAN 服务提供程序的 IOCTL

如果 SAN 服务提供商将 I/O 控制 (IOCTL) 请求发送到代理驱动程序,则驱动程序应实现 IRP_MJ_DEVICE_CONTROL 调度例程来处理这些请求。 例如,IOCTL 请求可以是检索分配给驱动程序 NIC 的 IP 地址列表的请求,也可以是分配或释放内存的请求。 DriverEntry 例程必须指定调度例程的入口点。

代理驱动程序的设备控制例程调用 IoGetCurrentIrpStackLocation 函数,其中设备控制例程传递指向传递给例程的 IRP 的指针。 然后,设备控制例程确定收到的 IOCTL 请求并相应地处理请求。

当前 IOCTL 请求完成后,设备控制例程调用 IoCompleteRequest 函数并传递操作的状态。 此状态将返回到 SAN 服务提供商。