From 9b841bdd15a80528dcca3de317b32d86b354d1f9 Mon Sep 17 00:00:00 2001 From: dahall Date: Sat, 12 Mar 2022 19:30:03 -0700 Subject: [PATCH] Simplified implementation of VirtualDisk.GetStorageDependencyInformation --- VirtualDisk/VirtualDisk.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/VirtualDisk/VirtualDisk.cs b/VirtualDisk/VirtualDisk.cs index b4469094..75cf1c3f 100644 --- a/VirtualDisk/VirtualDisk.cs +++ b/VirtualDisk/VirtualDisk.cs @@ -462,7 +462,7 @@ namespace Vanara.IO /// CD and DVD image files (ISO) are not supported before Windows 8 and Windows Server 2012. public static STORAGE_DEPENDENCY_INFO_TYPE_2[] GetStorageDependencyInformation(IntPtr handle, GET_STORAGE_DEPENDENCY_FLAG flags) { - using SafeCoTaskMemStruct mem = new(new STORAGE_DEPENDENCY_INFO { Version = STORAGE_DEPENDENCY_INFO_VERSION.STORAGE_DEPENDENCY_INFO_VERSION_2 }); + using var mem = SafeCoTaskMemHandle.CreateFromStructure(new STORAGE_DEPENDENCY_INFO { Version = STORAGE_DEPENDENCY_INFO_VERSION.STORAGE_DEPENDENCY_INFO_VERSION_2 }); Win32Error err = VirtDisk.GetStorageDependencyInformation(handle, flags, mem.Size, mem, out int sz); if (err == Win32Error.ERROR_INSUFFICIENT_BUFFER) { @@ -470,7 +470,8 @@ namespace Vanara.IO err = VirtDisk.GetStorageDependencyInformation(handle, flags, mem.Size, mem, out sz); } err.ThrowIfFailed(); - return mem.AsRef().Entries.ToTypedArray(); + // Get array at offset 8 from count at offset 4 + return mem.ToArray(mem.ToStructure(sizeof(int)), sizeof(uint) * 2); } /// Creates an instance of a Virtual Disk from a file.