Это перевод Why does my command line redirection echo with an extra 1? Who’s inserting these rogue 1s everywhere? Автор: Реймонд Чен.
Если вы оставите включённым режим echo в командном файле, и командный файл выполняет команду с перенаправлением, тогда в выводе появится загадочная единичка.
вторник, 17 ноября 2020 г.
среда, 9 сентября 2020 г.
Как можно заклинить виртуальный картридер?
Это перевод How is it possible to jam a virtual card reader? Автор: Реймонд Чен.
Когда-то давно я поддерживал систему с разделением времени, известную как VM/CMS. Каждый пользователь, вошедший в систему, получал свою собственную виртуальную машину с виртуальными аппаратными устройствами: виртуальным устройством для чтения карт, виртуальным устройством для записи перфокарт и виртуальным принтером.
Хорошо, у вас есть виртуальный картридер. Как вы будете загружать виртуальные карты в свой виртуальный картридер? И зачем вообще это делать?
Когда-то давно я поддерживал систему с разделением времени, известную как VM/CMS. Каждый пользователь, вошедший в систему, получал свою собственную виртуальную машину с виртуальными аппаратными устройствами: виртуальным устройством для чтения карт, виртуальным устройством для записи перфокарт и виртуальным принтером.
Хорошо, у вас есть виртуальный картридер. Как вы будете загружать виртуальные карты в свой виртуальный картридер? И зачем вообще это делать?
среда, 2 сентября 2020 г.
Чему может быть равно свойство Status у WMI класса Win32_ComputerSystem?
Это перевод What are the possible Status values for Win32_ComputerSystem? Автор: Реймонд Чен.
Документация для WMI класса
Документация для WMI класса
Win32_ComputerSystem
содержит такое описание свойства Status
:Что эта чушь пытается нам сказать? И что она говорит нам о возможных значениях свойстваStatus
Тип данных:string
Доступ: только чтение
Квалификаторы: MaxLen (10), DisplayName (“Status”)
Текущее состояние объекта. Могут быть определены различные рабочие и нерабочие состояния. К рабочим статусам относятся: OK, Degraded и Pred Fail. Последнее значение может использоваться, к примеру, жёстким диском с поддержкой SMART, который может функционировать правильно, но прогнозирует сбой в ближайшем будущем. К нерабочим состояниям относятся: Error, Starting, Stopping и Service, которые могут применяться во время переноса зеркала диска, перезагрузки списка разрешений пользователей или другой административной работы.
Это свойство наследуется отCIM_
.ManagedSystemElement
Значения могут быть следующими:
OK (“OK”)
Error (“Error”)
Degraded (“Degraded”)
Unknown (“Unknown”)
Pred Fail (“Pred Fail”)
Starting (“Starting”)
Stopping (“Stopping”)
Service (“Service”)
Stressed (“Stressed”)
NonRecover (“NonRecover”)
No Contact (“No Contact”)
Lost Comm (“Lost Comm”)
Status
для Win32_ ComputerSystem
?понедельник, 31 августа 2020 г.
Существует ли кодовая страница, совпадающая с ASCII и позволяющая сделать двустороннюю конвертацию в Unicode?
Это перевод Is there a code page that matches ASCII and can round trip arbitrary bytes through Unicode? Автор: Реймонд Чен.
Вам может понадобится такая кодовая страница, если у вас есть фрагмент двоичных данных с внедрённым текстом ASCII. Вы бы хотели иметь возможность извлекать текст ASCII и даже манипулировать им, но при этом и также обрабатывать части, не относящиеся к ASCII, как загадочные символы, не имеющие смысла. Но вам также нужно иметь возможность преобразовать их обратно в исходные байты.
Вам может понадобится такая кодовая страница, если у вас есть фрагмент двоичных данных с внедрённым текстом ASCII. Вы бы хотели иметь возможность извлекать текст ASCII и даже манипулировать им, но при этом и также обрабатывать части, не относящиеся к ASCII, как загадочные символы, не имеющие смысла. Но вам также нужно иметь возможность преобразовать их обратно в исходные байты.
пятница, 21 августа 2020 г.
Об использовании FILE_FLAG_WRITE_THROUGH и FILE_FLAG_NO_BUFFERING для проецируемых в память файлов
Это перевод On using FILE_FLAG_WRITE_THROUGH and FILE_FLAG_NO_BUFFERING for memory-mapped files. Автор: Реймонд Чен.
Клиент хотел использовать флаги
Клиент хотел использовать флаги
FILE_FLAG_WRITE_THROUGH
и FILE_FLAG_NO_BUFFERING
для проецируемого в память файла (memory-mapped file), основываясь на этом руководстве в документации для функции CreateFile
:
По этой причине флагКлиент был обеспокоен тем, повлияет ли такая комбинация флагов на согласованность данных.FILE_FLAG_WRITE_THROUGH
часто используется совместно с флагомFILE_FLAG_NO_BUFFERING
в качестве замены для вызова функцииFlushFileBuffers
после каждой записи, что может привести к ненужным потерям производительности. Совместное использование этих флагов позволяет избежать штрафов.
суббота, 23 мая 2020 г.
Отладка зависания: все потоки встали на WinHttpGetProxyForUrl
Это перевод Diagnosing a hang: Everybody stuck in WinHttpGetProxyForUrl. Автор: Реймонд Чен.
Клиент сообщил, что их программа рано или поздно полностью встаёт, а все её потоки (750 штук) зависают при вызове
Клиент сообщил, что их программа рано или поздно полностью встаёт, а все её потоки (750 штук) зависают при вызове
WinHttpGetProxyForUrl
со следующим стеком вызова:ntdll!ZwWaitForSingleObject+0x14 KERNELBASE!WaitForSingleObjectEx+0x8f winhttp!OutProcGetProxyForUrl+0x160 winhttp!WinHttpGetProxyForUrl+0x349 contoso!submit_web_request+0x232 ntdll!TppWorkpExecuteCallback+0x35e ntdll!TppWorkerThread+0x474 kernel32!BaseThreadInitThunk+0x14 ntdll!RtlUserThreadStart+0x21(я упростил стек вызова для простоты объяснения)
Дело о SHGetFolderPath(CSIDL_COMMON_DOCUMENTS), возвращающей ERROR_PATH_NOT_FOUND
Это перевод The case of the
У клиента возникла проблема с функцией
SHGetFolderPath(CSIDL_COMMON_DOCUMENTS)
that returned ERROR_PATH_NOT_FOUND
. Автор: Реймонд Чен.У клиента возникла проблема с функцией
SHGetFolderPath
. В частности, у них была программа, которая вызывала функцию так:
SHGetFolderPath(0, CSIDL_COMMON_DOCUMENTS, 0, SHGFP_TYPE_CURRENT, PChar(pathBuffer));но вызов функции возвращал ошибку $80070003 - это HRESULT-версия для
ERROR_PATH_NOT_FOUND
. Ошибка возникает только при запуске из Jenkins pipeline. Если же программа запускается автономно, то функция завершается успешно и возвращает ожидаемый результат.среда, 11 марта 2020 г.
Печальная, но короткая история значения реестра SM_AccessoriesName
Это перевод The sad but short story of the SM_AccessoriesName registry value. Автор: Реймонд Чен.
SM_AccessoriesName - ещё одна жертва программ, влезающих в недокументированные разделы реестра.
SM_AccessoriesName - ещё одна жертва программ, влезающих в недокументированные разделы реестра.
Однажды генеральный директор компании пожаловался в Конгресс на расширения файлов Windows
Это перевод That time the CEO of a company complained to Congress about Windows file extensions. Автор: Реймонд Чен.
В те времена, когда ненавидеть Microsoft было ещё более модно, чем сегодня (да, некоторые вещи никогда не выходят из моды), я помню, как генеральный директор одной технологической компании свидетельствовал перед Конгрессом, чтобы пожаловаться на файловые расширения Windows.
В те времена, когда ненавидеть Microsoft было ещё более модно, чем сегодня (да, некоторые вещи никогда не выходят из моды), я помню, как генеральный директор одной технологической компании свидетельствовал перед Конгрессом, чтобы пожаловаться на файловые расширения Windows.
вторник, 25 февраля 2020 г.
Почему существуют тривиальные функции типа CopyRect и EqualRect?
Это перевод Why are there trivial functions like CopyRect and EqualRect? Автор: Реймонд Чен.
Если вы покопаетесь внутри
Если вы покопаетесь внутри
user32
, вы увидите там некоторые, казалось бы, тривиальные функции - такие как CopyRect
и EqualRect
. Зачем нам вообще нужны целые функции для того, что можно сделать с помощью операторов :=
и =
?
Подписаться на:
Сообщения (Atom)