我在处理监控即插即用设备的插入和移除。但是遇到了一个问题
我想在DriverEntry中设置回调,以便当即插即用设备插入或拔出时,走我的回调函数。
对于U盘来说,通过IoRegisterPlugPlayNotification可以获取到U盘的插入和移除,成功走了回调函数
status = IoRegisterPlugPlayNotification( EventCategoryDeviceInterfaceChange,
PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES,
(PVOID) &DiskClassGuid,
pDriverObject,
PnpNotifyInterfaceChange,
NULL,
&hdiskNotify );
但是对于SD卡来说,上面的回调没有走;我发现SD卡插入拔出时,其设备不会移除,只是磁盘移除了;
于是我尝试更换IoRegisterPlugPlayNotification中的GUID改为使用VolumeClassGuid,但是无法获取插入和移除卡,无论我怎么插拔,都没走回调
status = IoRegisterPlugPlayNotification( EventCategoryDeviceInterfaceChange,
PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES,
(PVOID) &VolumeClassGuid,
pDriverObject,
OnPnpNotify,
NULL,
&hVolumeNotify );
请问,是我写的不对么?SD卡不能通过VolumeClassGuid监控磁盘的加载与移除么?