![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
CL0NE |
|
||||||||||||||||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.9.2009 Репутация: нет Всего: нет |
Синтаксис данной функции (в дополнение к ссылке на мсдн - здесь):
Привел я ее к такому виду в своем коде:
Первый параметр указывает на тип получаемой информации:
сделал его енумерейшном:
Ради теста использовал первый вариант, самый простой:
Второй параметр -
Следовательно, при первом варианте получим структуру:
Привел ее к "надлежащему" виду:
При вызове функция возвращает код NTSATUS
Первый при удачном вызове, третий - при слишком маленьком буфере. Третий параметр у функции - размер выделенного нами буфера, четвертый - обьем байт, записанных в буфер. Мой тестовый код, попытка использовать данную функцию:
Ну а теперь, самое "вкусное" (смысл топика ![]()
Это сообщение отредактировал(а) CL0NE - 9.9.2009, 03:31 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
а откуда ты взял значения энума SYSTEM_INFORMATION_CLASS?
везде, где попадались, SystemBasicInformation был равен 0 например, здесь если взять оттуда и структуру
то на домашней висте успешно выдалось 2 процессора а вот на рабочем 2003 сервере не прокатило тем не менее, и там, и там по коду 0x02c мне выдавался требуемый размер памяти, равный 172, ни из твоего варианта структуры, ни из моего такой размер не получить, у нас 44 так, кстати, я и убедился, что 0 - подходящее значение, при нём и при 62(0x3E) выдавалось 44 требуемых байта (при 62 те же значения полей структуры). ни одно другое число из интервала 0..99999999 44 не дало как бы то ни было, ZW-функции не предназначены для использования вне внутренностей системы, советую поискать альтернативный вариант. тот же МСДН рекомендует для получения числа процессоров GetSystemInfo Это сообщение отредактировал(а) mihryak - 9.9.2009, 21:03 |
|||
|
||||
CL0NE |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.9.2009 Репутация: нет Всего: нет |
Вообще-то мне нужа функция ради SystemProcessorPerformanceInformation. Ибо функция GetSystemTimes, предлагаемая, как альтернатива, возвращает суммарную загрузку процессора. Так же само и WMI (который я использовал до этого, причем, как на каком-то форуме упоминалось, добавляет загрузку процессора на 10% Оо). А хочется на каждое ядро ![]()
Только что, погуглив, нашел где я их взял. http://undocumented.ntinternals.net/ о_О Спросонья я почемуто посчитал
Мораль: никогда не пишите код на сонную голову! ![]() mihryak спасибо огромное, все работает! Это сообщение отредактировал(а) CL0NE - 10.9.2009, 01:17 |
||||||||
|
|||||||||
CL0NE |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.9.2009 Репутация: нет Всего: нет |
все. да не все
![]() ![]() Это при использовании SystemProcessorPerformanceInformation
Первое поле - время, проведенное процессором в режиме бездействия, измеряется в тиках. Берем определенный промежуток (n tick, тик- 100 наносекунд, если не ошибаюсь). Замеряем время простоя процессора в начале промежутка и в конце. Делим на время промежутка и получаем процент бездействия. Отняв от единицы - получим процент загрузки ![]()
что ж, будем дальше ломать код ![]() p.s.: сделал поправку, т.к. упустил момент о размерах типов в С++ (long - 32-bit signed integer), C# (64-bit signed integer.) Теперь появилась проблема... постоянно выводит загрузку 100% оО Это сообщение отредактировал(а) CL0NE - 14.9.2009, 00:36 |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |