Статьи с тегом «Win32 API»
Статьи с тегом «Win32 API» (10 шт.), от новых к старым.
-
Почему ломаются аргументы ── правила аргументов командной строки Windows
В Windows массива аргументов нет: в CreateProcess уходит одна строка, делит её принимающая сторона. Правила деления CommandLineToArgvW, CRT и .NET, ArgumentL...
-
Что остаётся после падения родителя ── дерево дочерних процессов в Job Object
Почему после принудительного завершения UI остаётся помощник SDK и держит камеру или COM-порт. Как Job Object делает дерево процессов одной единицей и как сп...
-
Пул потоков Win32 — параллелизм через CreateThreadpoolWork без своих потоков
Не плодите ли вы CreateThread по всему нативному коду? Разбираем API пула потоков Win32, переработанный в Vista: четыре объекта work, timer, wait и io, групп...
-
Именованные каналы на практике — от проектирования до безопасности IPC в Windows
Практический разбор именованных каналов — стандартного IPC в Windows. По первоисточникам: выбор байтового режима и режима сообщений, сервер на несколько клие...
-
Приложение ломается после сна — события питания и устойчивое восстановление
Открыли ноутбук — соединения бизнес-приложения уже мертвы. Так бывает, когда логика не рассчитана на сон. Разбираем цепочку уведомлений WM_POWERBROADCAST, по...
-
DllMain и блокировка загрузчика — почему говорят «в инициализации DLL ничего не делайте»
Почему из DllMain нельзя вызывать LoadLibrary и синхронизироваться с потоками. По первоисточникам: как блокировка загрузчика сериализует все уведомления DLL,...
-
«Не отвечает»: как Windows определяет зависание и как проектировать так, чтобы оно не возникало
Windows считает окно неотвечающим, если 5 секунд не извлекает сообщения, и подменяет его фантомным окном. Разбираем критерий, типичные причины, проектировани...
-
Ложное пробуждение: почему wait на условной переменной возвращается без уведомления и как ждать в Windows
wait на условной переменной может вернуться и без уведомления (ложное пробуждение). Почему спецификация это допускает и как правильно ждать через while и пре...
-
Как читать коды ошибок Windows — Win32, HRESULT и NTSTATUS
Если появился 0x80004005, сначала разберите код, а не ищите его вслепую. Три системы Win32, HRESULT и NTSTATUS, шаблон 0x8007xxxx как упакованная ошибка Win3...
-
Многопоточность на C: практические рекомендации — безопасно по правилам Win32 API
На C с Win32 потоки создают через _beginthreadex, внутри процесса берут SRW-блокировку и условные переменные, одиночные переменные обновляют Interlocked, ост...