这些ioctl命令用于查询接口的状态并对其属性进行操作。
您不必处理service.h中的所有IOCTL(就该问题而言,您不必处理它们中的任何一个)。
我们应该使用一个单独的ioctl命令来对中断模拟进行控制(请参阅ioctl接口一节的内容)。
在Finger服务器示例中,服务定义和实现了IOCTL代码,以获得和设置发送到Finger客户端的消息。
这个用户空间程序在预定义的proc-entries上执行ioctl,这会导致对内核模块的调用。
BLKGETSIZE64ioctl将被添加到Linux中所有的设备,而在这里,逻辑卷管理器还不支持它。
需要调用这个特殊的ioctl函数INTR_SIMULATE来模拟中断。
ioctl命令应该添加到设备驱动程序中,这样就可以从测试应用程序中控制对中断的模拟了。
下面的清单介绍了一些最重要的结构,使用ioctl套接字命令时常常用到这些结构。
清单6显示ioctl调用导致用来格式化分区的mkfs程序失败。
ioctl函数处理专用文件的底层设备参数。
在该示例中,Services.exe只是向指定的服务发送IOCTL_SERVICE_STOP或IOCTL_SERVICE_START。
与对应的系统调用DeviceIOControl不同,ioctl的输入参数列表并不固定。
GET不被电源管理器使用,因为它保存驱动的当前状态。
这个值是从ioctl调用中返回的,用户线程必须对此进行响应。
目前,文件系统冻结是通过具有参数FIFREEZE或FITHAW的ioctl来实现的。
在继续之前,我们首先来讨论一下在这两种方法中都会使用的ioctl接口。
在发生这种情况时,SPU就会停止,ioctl调用也会被中断。
您可以将IOCTL视为暂停和继续执行服务的请求。
VME服务使用标准的用户级程序,例如IOCTL调用,提供部分访问权。