Exemple #1
0
        public static IReadOnlyList <MiniFilterInstance> EnumInstances(string volumeName)
        {
            IntPtr hFind;
            int    returned;
            var    size   = sizeof(INSTANCE_FULL_INFORMATION) + 256;
            var    buffer = stackalloc byte[size];

            int hr = FilterVolumeInstanceFindFirst(volumeName, FilterVolumeInstanceInformationClass.FullInformation, new IntPtr(buffer), size, out returned, out hFind);

            if (hr < 0)
            {
                return(null);
            }

            var instances = new List <MiniFilterInstance>(8);

            do
            {
                var info = (INSTANCE_FULL_INFORMATION *)buffer;
                var inst = new MiniFilterInstance(info);
                instances.Add(inst);
            } while (0 == FilterVolumeInstanceFindNext(hFind, FilterVolumeInstanceInformationClass.FullInformation, new IntPtr(buffer), size, out returned));

            FilterVolumeInstanceFindClose(hFind);
            return(instances);
        }
Exemple #2
0
 public IReadOnlyList <MiniFilterInstance> EnumFilterInstances()
 {
     return(MiniFilterInstance.EnumInstances(Name));
 }