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