@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The Heap32ListFirst API !!!!C# Signature: [DllImport("kernel32.dll")] static extern bool Heap32ListFirst(IntPtr hSnapshot, ref HEAPLIST32 lphl); !!!!User-Defined Types: None. !!!!Notes: None. !!!!Tips & Tricks: Please add some! !!!!Sample Code: uint process_id = 1234; IntPtr heaplist_h = CreateToolhelp32Snapshot( (uint)ToolHelp.SnapshotFlags.HeapList, (uint) process_id); if (heaplist_h == ToolHelp.INVALID_HANDLE_VALUE) { int err = Marshal.GetLastWin32Error(); textBox1.AppendText("Cant create shapshot. Err: " + err.ToString("X") + "\n"); if (err == ToolHelp.ERROR_ACCESS_DENIED) // win32-64 or something like that wr(" Access denied\n"); return; } HEAPLIST32 hlist = new ToolHelp.HEAPLIST32(); hlist.dwSize = (uint) Marshal.SizeOf(hlist); bool r = Heap32ListFirst(heaplist_h, ref hlist); while (r) { textBox1.AppendText(" flags: " + hlist.dwFlags.ToString("X") + ". HeapID: " + hlist.th32HeapID.ToString() + "\n"); ToolHelp.HEAPENTRY32 heapentry = new ToolHelp.HEAPENTRY32(); heapentry.dwSize = (uint) Marshal.SizeOf(heapentry); bool r2 = ToolHelp.Heap32First(ref heapentry, hlist.th32ProcessID, hlist.th32HeapID); while (r2) { textBox1.AppendText(" Start: " + heapentry.dwAddress.ToString() + ", size: " + heapentry.dwBlockSize.ToString() + "\n" ); r2 = ToolHelp.Heap32Next(out heapentry); } r = ToolHelp.Heap32ListNext(heaplist_h, ref hlist); } ToolHelp.CloseHandle(heaplist_h); !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: Heap32ListFirst@msdn on MSDN
Edit kernel32.Heap32Li...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.