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); }
public IReadOnlyList <MiniFilterInstance> EnumFilterInstances() { return(MiniFilterInstance.EnumInstances(Name)); }