阅读:1076回复:4
菜鸟级问题,操作系统是如何将设备和该设备所属的驱动联系起来的?
菜鸟级问题,操作系统是如何将设备和该设备所属的驱动联系起来的?
|
|
沙发#
发布于:2005-02-01 10:07
不清楚你问的是哪一方面,在实际的设备操作中,驱动是通过设备对象来访问设备的,而设备对象是利用IoCreateDevice产生的:
NTSTATUS IoCreateDevice( IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName OPTIONAL, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject ); |
|
|
板凳#
发布于:2005-02-01 14:15
你填充的driverobject不就是系统的么?
|
|
|
地板#
发布于:2005-02-01 14:59
系统怎么知道设备需要的是 驱动1.sys 还是 驱动2.sys 呢?
驱动1.sys IoCreateDevice( IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName OPTIONAL, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject ); 驱动2.sys IoCreateDevice( IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName OPTIONAL, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject ); |
|
地下室#
发布于:2005-02-01 15:28
最大的秘密藏在注册表中
请参看《programming the Microsoft Driver Windows》 第二章的How the System Finds and Loads Drivers 可从中得到详细的答案,绝非楼上仁兄所述 该书本站有下载 |
|
|