轉自:http://blog.csdn.net/baund/article/details/7059920
IoEnumerateDeviceObjectList函數,用來枚舉某驅動下的所有設備,主要是遍歷deviceobject->nextobject字段,該函數第一次可以將DeviceObjectListSize傳遞0,來獲取實際的設備個數,第二次調用,再獲取整個設備列表,實現如下:
在文件過濾驅動中,常用該函數來枚舉某文件系統下的所有設備,然後根據名字來區別是卷設備還是控制設備,空名字即卷設備,然後進行attach即可。
注意:調用該函數後,需要對設備隊列的每個設備,都ObDereferenceObject一次,來保持對象的數目平衡。