Обратил внимание, что при компилировании обращения к функции FindFirstFile() с любого языка высокого уровня компилятор автоматически добавляет в код следующее:
- перед вызовом FindFirstFile() читается некий адрес в памяти, по которому изначально находится число 0хВ064, и прочитанное значение сохраняется в стеке.
- после завершения цикла FindFirstFile() / FindNextFile() / FindClose() это сохраненное в стеке значение сравнивается с текущим значением по этому же адресу и в зависимости от результата сравнения выполняются некоторые действия, смысла которых я не понимаю. Предполагаю, что это каким-то образом связано с сохранением/восстановлением текущей директории (только если это так, то делается это весьма странно).
Вопросы:
1. Что это за адрес и что это за начальное значение 0хВ064?
2. С какой целью выполняются эти дополнительные действия?
2. Являются ли эти действия обязятельными при вызове связки FindFirstFile() / FindNextFile() / FindClose() или выполняются по мере необходимости?