IntPtr to Stuctures array
От: Аноним  
Дата: 29.08.09 17:36
Оценка:
есть функция

NTSTATUS WINAPI Bla-Bla-Bla(  
__inout    PVOID SystemInformation,
__in       ULONG SystemInformationLength,
__out_opt  PULONG ReturnLength );


первый параметр — буфер для получения информации переменной длины, второй — длина буфера в байтах.
В буфер попадает массив из структур.
необходимо ее использовать в C#, потому привел ее к надлежащему виду (поправьте если не так):

[DllImport("Bla.dll", EntryPoint="Bla-Bla-Bla")]
 static extern long Super(
        ref IntPtr SystemInformation,
        ulong SystemInformationLength,
        out long ReturnLength);


Пример вызова:
IntPtr ptr = Marshal.AllocHGlobal(elementCount * Marshal.SizeOf(typeof(SystemInfoStructure)));
long formal;
Super(ref ptr, (ulong)(elementCount * Marshal.SizeOf(typeof(SystemInfoStructure))), out formal);

Каким образом можно привести полученные в ptr данные к массиву структур?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.