Вызов функции GetSystemInfo через p/invoke возвращает неверный результат

252
14 мая 2017, 21:22

Здравствуйте. Вызывая функцию GetSystemInfo из kernel32 через p/invoke. Сигнатура функции и структур:

    const int PROCESS_QUERY_INFORMATION = 0x0400;
    const int MEM_COMMIT = 0x00001000;
    const int PAGE_READWRITE = 0x04;
    const int PROCESS_WM_READ = 0x0010;
    public struct MEMORY_BASIC_INFORMATION
    {
        public int BaseAddress;
        public int AllocationBase;
        public int AllocationProtect;
        public int RegionSize;
        public int State;
        public int Protect;
        public int lType;
    }
    public struct SYSTEM_INFO
    {
        public ushort processorArchitecture;
        ushort reserved;
        public uint pageSize;
        public IntPtr minimumApplicationAddress;
        public IntPtr maximumApplicationAddress;
        public IntPtr activeProcessorMask;
        public uint numberOfProcessors;
        public uint processorType;
        public uint allocationGranularity;
        public ushort processorLevel;
        public ushort processorRevision;
    }
    [DllImport("kernel32.dll")]
    public static extern void GetSystemInfo(out MyClass.SYSTEM_INFO lpSystemInfo);

Вызывая код:

        var systemInfo = new SYSTEM_INFO();
        Kernel32.GetSystemInfo(out systemInfo);
        proc_min_address = systemInfo.minimumApplicationAddress;
        proc_max_address = systemInfo.maximumApplicationAddress;
        proc_min_address_l = systemInfo.minimumApplicationAddress.ToInt64();
        proc_max_address_l = systemInfo.maximumApplicationAddress.ToInt64();

В proc_min_address у меня Int32.MaxValue, а в proc_max_address_l у меня Int32.MinValue.

В чем проблема?

READ ALSO
Объявление пространств имен в c#?

Объявление пространств имен в c#?

Всем приветПочему в данном примере:

252
Взаимодействие таблиц User, Student, Teacher

Взаимодействие таблиц User, Student, Teacher

Делаю подобие школьного сайтаВ приложении MVC 4 заимплементил кастомный membership provider, соответственно при помощи code first entity framework сгенерировал...

238
“Общение” 2 компьютеров средствами c#

“Общение” 2 компьютеров средствами c#

День добрый! Появилась у меня надобность "связать" 2 компа, чтобы один мог отсылать какую-то информацию, а другой - читать ее и обрабатыватьСначала...

217
Подсчет количества совпадение в списке

Подсчет количества совпадение в списке

Есть список словХочу получить результирующий словарь в котором я бы мог получить количество одинаковых строк

330