Лимит ресурсов выдаваемых процессу под XP и 2k

Тема в разделе "WASM.WIN32", создана пользователем CodeTao, 6 янв 2007.

  1. CodeTao

    CodeTao Евгений

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    177
    Адрес:
    штаты
    Интересно узнать у уважаемого All сколько разрешаеться создавать USER обьектов в процессе, если возможно подкинте ссылки на соответсующие стандарты. Заранее благодарен.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    CodeTao
    Например, цитата из Джеффри Рихтер, Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows: "Один процесс в Windows может создать до 10 000 User-объектов различных типов — значков, курсоров, окон ных классов, меню таблиц клавиш-акселераюров и т.д."
     
  3. CodeTao

    CodeTao Евгений

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    177
    Адрес:
    штаты
    Да я читал это, просто надеялся на microsoft-овсую спецификацию, но если это все что есть, то тема закрыта. Спасибо за ответ.
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    CodeTao
    надеялся на microsoft-овсую спецификацию
    Например, из MSDN | Windows System Information | User Objects: "There is a theoretical limit of 65,536 user handles per session. However, the maximum number of user handles that can be opened per session is usually lower, since it is affected by available memory. There is also a default per-process limit of user handles. To change this limit, set the following registry value:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
    CurrentVersion\Windows\USERProcessHandleQuota


    This value can be set to a number between 200 and 18,000.
    "

    + Maximum NT User Handles Per Process Is 10,000 in Windows XP

    + поиск в сети по USERProcessHandleQuota
     
  5. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Самое интересное это то, что программа падает по достижении 10,000 GDI объектов. Не то, чтобы начинает рисовать элементы по странному или не рисовать вообще, а просто происходит исключение и конец. Я так понимаю, что где-то в "кишках" Windows нет проверок на нулевые значения HBRUSH, HPEN, HFONT и т.п. Скорее всего для оптимизации по скорости - всё-таки Windows больше всего занимается рисованием.
     
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    AsmGuru62
    программа падает по достижении 10,000 GDI объектов
    Ты проводил специальное исследование? Расскажи, как и на каких конфигурациях?

    в "кишках" Windows нет проверок
    Зачем передавать туда нулевые значения HBRUSH, HPEN, HFONT и т.п.?

    в "кишках" Windows нет проверок
    imho "счастливые" обладатели исходников win'ды смогут пролить свет на эту догадку.
     
  7. CodeTao

    CodeTao Евгений

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    177
    Адрес:
    штаты