Установка и настройка Windows 2000

         

Установка и настройка Windows 2000

Пользователю, который "включил компьютер, но ничего не работает", обычно не до смеха, особенно если он не может самостоятельно выяснить, что случилось, и устранить неполадку. Посмотрим на вещи реально: поскольку проблемы с загрузкой возможны при работе с любой операционной системой, то и Windows 2000 не является исключением из общего правила. Несмотря на изменение названия (Windows 2000 вместо Windows NT 5.0), эта операционная система базируется на технологии NT (этот факт отражен в заставке, появляющейся при запуске систем). Именно по этой причине в процессе загрузки Windows 2000 могут возникать некоторые проблемы, с которыми сталкивались ранее пользователи операционных систем Windows NT. Тем не менее стоит порадовать пользователей и хорошими новостями: система действительно стала надежнее, стабильнее, и, кроме того, в ее состав добавлены новые средства устранения как проблем с загрузкой, так и других неполадок.
Грамотный пользователь не должен пугаться, услышав слова "boot-сектор", "главная загрузочная запись", "POST" и т. п. Чтобы по возможности быстро и с минимальными потерями выйти из ситуации, при которой возникают проблемы с загрузкой Windows 2000, необходимо знать, как происходит процесс загрузки, от момента включения компьютера и до регистрации пользователя в системе.

Требования к минимальной конфигурации, необходимой для установки Windows 2000
Опцию FAT следует выбирать, если объем выбранного раздела жесткого диска не превышает 2 Гбайт, и при этом требуется обеспечить возможности доступа к файлам на этом разделе при загрузке компьютера под управлением таких операционных систем, как MS-DOS, Windows 3x, Windows 95, и OS/2.

Запуск систем Windows 2000
Если в меню загрузчика выбрана одна из версий Windows NT/2000 (или начала загружаться система по умолчанию, когда истек срок действия таймера), то NTLDR вызывает Ntdetect.com, чтобы собрать информацию о физических устройствах, подключенных на данный момент к компьютеру. Ntdetect.com возвращает полученную информацию загрузчику NTLDR.

Поддержка Plug and Play
В Windows 2000 теперь в полном объеме реализована технология Plug and Play — набор стандартов аппаратной и программной поддержки, позволяющей компьютерной системе распознавать и адаптировать изменения аппаратной конфигурации без вмешательства пользователя и без необходимости перезагрузки компьютера. Новые средства операционной системы, выполняющие задачи по управлению аппаратными средствами, — Мастер оборудования (Hardware Wizard) и Диспетчер устройств (Device Manager) — существенно упрощают установку новых устройств, таких как устройства CD-ROM, сетевые адаптеры, жесткие диски

Пользовательский интерфейс
Операционные системы из семейства Windows 2000 представляют собой стратегическое направление, на развитие которого брошены лучшие силы разработчиков Microsoft! В частности, предполагается, что Windows 2000 Professional станет стандартной операционной системой для клиентских ПК, применяющихся в деловых целях. Переход на новую операционную систему — очень серьезное мероприятие, а для некоторых пользователей — еще и стресс.

Панель управления в Windows 2000
Как и в предыдущих версиях Windows NT, основным назначением панели управления (Control Panel) в Windows 2000 является конфигурирование системы. Окно панели управления в Windows 2000 открывается точно таким же образом, как это делалось в Windows NT 4.0 — для этого следует в меню Пуск (Start) выбрать опции Настройка | Панель управления (Settings | Control Panel).

Общие концепции консоли управления Microsoft
В Windows 2000 был кардинально изменен интерфейс управления операционной системой. В соответствии с новой концепцией Microsoft из системы Windows NT были удалены все автономные и несовместимые друг с другом административные утилиты и разработана единая среда управления, получившая название консоль управления Microsoft (Microsoft Management Console, MMC). Эта общая консоль управления разработана для запуска всех программных модулей администрирования, конфигурирования или мониторинга локальных компьютеров и сети в целом. Такие законченные модули называются оснастками (snap-ins).

Общие сведения о файловых системах
Windows 2000 поддерживает распределенную файловую систему (Distributed File System, DFS) и шифрующую файловую систему (Encrypting File System, EFS). Хотя DFS и EPS и названы "файловыми системами", они не являются таковыми в строгом понимании этого термина. Так, DFS представляет собой расширение сетевого сервиса, позволяющее объединить в единый логический том сетевые ресурсы, расположенные в разделах с различными файловыми системами. Что касается EPS, то это — надстройка над NTFS, которая дополняет NTFS возможностями шифрования данных.

Восстановление системы
Возникновение проблем может быть вызвано некорректно работающими приложениями и плохо написанными драйверами устройств. Стоит ли говорить о том, что такие проблемы могут создать у пользователей впечатление о Windows 2000 как о нестабильно работающей системе? Поэтому, несмотря на существенное повышение надежности системы и ее устойчивости к сбоям, проблемы все равно возможны (хотя бы как следствие "правила самолета"), и к их устранению надо быть готовым.

Управление общими дисковыми ресурсами
Локальное и удаленное администрирование общих ресурсов в Windows 2000 осуществляется с помощью оснастки Общие папки (Shared Folders). (В Windows 4.0 аналогичные функции выполняла утилита Server панели управления.) С ее помощью можно также управлять сеансами и открытыми файлами. Она входит в стандартный инструмент администрирования — Управление компьютером (Computer Management). Ниже мы рассмотрим, как с помощью оснастки Общие папки можно создать общий ресурс.

Печать в Windows 2000
Печать через Интернет. Архитектура печати Windows 2000 интегрирована с технологиями Интернет. Клиент может обращаться к сетевым принтерам через корпоративные интрасети или через Интернет. После того как принтер создан и разрешено его совместное использование, он появляется в HTML-папке принтеров.

Windows 3.1 для программиста -том 1

Операционная система Microsoft Windows по своим возможностям не только намного превосходит MS-DOS, но и даже просто не сравнима с MS-DOS. Удобный, хорошо продуманный, а главное, стандартизованный для всех программ Windows пользовательский интерфейс интуитивно ясен и удобен для изучения. Поэтому после появления Microsoft Windows версии 3.0 всего за несколько лет произошла настоящая революция прикладного программного обеспечения персональных компьютеров - практически все основные программные продукты были переделаны для работы в среде Windows. При этом они приобрели свойства и возможности, недостижимые ранее из-за ограничений, накладываемых операционной системой MS-DOS.
Но к сожалению, программирование для Windows - гораздо более трудоемкое и кропотливое занятие, чем программирование для MS-DOS. Это связано, в первую очередь, с обилием новых возможностей. Для создания пользовательского интерфейса и выполнения других задач вам предлагается набор из более чем тысячи функций! Если же вы собираетесь работать с мультимедиа или другими дополнительными подсистемами Windows, набор функций еще больше расширяется.

Основы Microsoft Windows
На помощь программисту приходит объектно-ориентированный подход и наборы классов, поставляемых в комплекте со средствами разработки программ или отдельно. Есть автоматизированные генераторы программ, почти или полностью исключающие программирование на каком бы то ни было процедурном языке. При этом сложность задачи сокращается в десятки и сотни раз, правда, иногда ценой потери эффективности и производительности программы.

Приложение OEM2ANSI
В качестве примера приведем исходный текст приложения OEM2ANSI, выполняющего перекодировку файла из набора OEM в набор ANSI. На примере этого приложения вы узнаете о стандартных средствах Windows, позволяющих выполнять поиск файлов в каталогах и сохранение файлов под заданным именем и в заданном каталоге. Кроме этого вы узнаете о существовании в программном интерфейсе Windows специальных функций, предназначенных для работы с файлами.

Windows 3.1 для программиста -том 2

Во второй части мы продолжим изучение программного интерфейса Windows. Будут рассмотрены ресурсы, стандартные (предопределенные) классы окон, а также диалоговые панели.
Первая глава посвящена ресурсам. Ресурсы - это данные, которые добавляются в файл загрузочного модуля приложения Windows и могут при необходимости загружаться в оперативную память. Расположение данных в ресурсах приложения позволяет достичь более эффективного использования памяти. Программы MS-DOS были вынуждены загружать, например, строки сообщений, в оперативную память или реализовывать собственную логику для их динамической загрузки из файлов. Для приложений Windows существует более элегантный способ, исключающий перегрузку памяти ненужными данными и избавляющий программиста от необходимости динамической загрузки данных из файлов.

Ресурсы
Физически ресурсы находятся внутри exe-файла приложения. Они могут загружаться в оперативную память автоматически при запуске приложения или по запросу приложения (явному или неявному). Такой механизм обеспечивает экономное использование оперативной памяти, так как все редко используемые данные можно хранить на диске и загружать в память только при необходимости.

Приложение EDIT
После описания всех стилей и сообщений текстового редактора у вас могло сложиться впечатление, что создание текстового редактора - очень сложная задача. Однако вам редко нужны все возможности органа управления класса "edit". Обычно для приложения требуется несложный однострочный или многострочный редактор, позволяющий вводить отдельные строки текста.

Приложение DLGCOMBO
Следующее приложение называется DLGCOMBO. Оно создает диалоговую панель, содержащую список "combobox", две кнопки ("OK" и "Cancel") и пиктограмму ( 3.5). С его помощью мы продемонстрируем использование функций, предназначенных для работы с органами управления, расположенными в диалоговой панели

Windows 3.1 для программиста -том 3

Первая глава посвящена созданию меню в приложениях Windows. Практически в любом стандартном приложении Windows есть меню, расположенное под заголовком главного окна приложения, а также системное меню. Операционная система Windows имеет мощную поддержку меню, избавляя программиста от рутинной работы и полностью обеспечивает интерфейс между меню и пользователем.
Для создания меню чаще всего используется шаблон, подготовленный редактором ресурсов Resource Workshop или аналогичным инструментом. Этот шаблон хранится в файле загрузочного модуля приложения вместе с другими ресурсами. Вы также можете создавать меню динамически во время работы приложения, используя специально предназначенные для этого функции программного интерфейса Windows. Мы расскажем вам о различных способах создания меню, а также о том, как подключить к меню клавиатурный интерфейс. Вы сможете создать меню из графических изображений bitmap.

Классификация типов меню
Для активизации строки меню вам надо установить на нее курсор и сделать щелчок левой клавишей мыши, либо нажать клавишу Alt и затем клавишу, соответствующую подчеркнутой букве. Например, для активизации строки "File" следует использовать клавиши Alt и F. Если нажать, а затем отпустить клавишу Alt, нужную строку в меню приложения можно будет выбрать клавишами перемещения курсора по горизонтали Left и Right.

Приложение LMEM
Автоматический сегмент данных приложения является перемещаемым. Операционная система Windows фиксирует сегмент данных при активизации приложения и расфиксирует его во время переключения на другие приложения. Поэтому логический адрес сегмента данных может изменяться.


Windows 3.1 для программиста. Дополнительные главы

Так как приложения Windows работают не в гордом одиночестве (как программы MS-DOS), а в компании других приложений, у пользователя должна быть возможность передавать данные из одного приложения в другое или даже организовать постоянно действующий канал передачи данных между различными приложениями.
Для однократной или эпизодической передачи данных можно использовать универсальный буфер обмена Clipboard и соответствующие функции программного интерфейса Windows, которые мы опишем во второй главе.
Вы можете также организовать канал передачи данных между любыми приложениями, пользуясь механизмом динамической передачи данных DDE. Этот механизм, а также интерфейсная dll-библиотека DDEML будет описана в третьей главе.

Многооконный интерфейс MDI
Как пользователь операционной системы Windows вы, наверное, хорошо знакомы с многооконным интерфейсом MDI (Multiple Document Interface), позволяющим в одном приложении работать одновременно с несколькими документами или с разными представлениями одного и того же документа. Этот интерфейс описан в руководстве по разработке интерфейса пользователя System Application Architecture Common User Access Advanced Interface Design Guide

Подготовка разделов
Как мы уже говорили, исходный текст справочной системы, поступающий на вход компилятора Help Compiler, должен быть сохранен в формате RTF (Rich Text Format). Этот формат описан в документации, которая поставляется вместе с SDK, но мы не знаем пока еще никого, подготовившего исходный текст справочной системы в этом формате. Приведем здесь небольшой фрагмент текста в формате RTF.

Инициализация реального режима
Процедура инициализации реального режима выводит текстовую строку, пользуясь функцией 09h прерывания INT21h. Как правило, виртуальные драйверы не отображают никаких сообщений, если инициализация выполняется без ошибок

Создание WIN32-приложений с учетом специфики 64-разрядной Windows

Сейчас Microsoft поставляет операционные системы Windows с тремя ядрами. Каждое ядро оптимизировано под свои виды вычислительных задач. Microsoft пытается переманить разработчиков программного обеспечения на Windows-платформы, утверждая, что интерфейс прикладного программирования (application programming interface, APT) у каждой из них одинаков. Это означает лишь то, что, научившись писать Windows-приложения для одного ядра, Вы поймете, как сделать то же самое для остальных.
Поскольку я объясняю, как писать Windows-приложения на основе Windows API, то теоретически все, о чем Вы узнаете из моей книги, применимо ко всем трем ядрам. На самом деле они сильно отличаются друг от друга, и поэтому одни и те же функции соответствующих операционных систем реализованы по-разному. Скажем так: базовые концепции одинаковы, но детали могут различаться.

Сегодняшние Windows-платформы
Windows 2000 рассчитана на рабочие станции и серверы, а также на применение в центрах обработки данных Отказоустойчива - плохо написанные программы не могут привести к краху системы. Защищена - несанкционированный доступ к ресурсам (например, файлам или принтерам), управляемым этой системой, невозможен. Богатый набор средств и утилит для администрирования системы в масштабах организации.

Вы тоже можете это сделать
О'кэй, я показал, как функции Windows сообщают об ошибках. Microsoft позволяет Вам использовать этот механизм и в собственных функциях. Допустим, Вы пишете функцию, к которой будут обращаться другие программы. Вызов этой функции может по какой-либо причине завершиться неудачно, и Вам тоже нужно сообщать об ошибках. С этой целью Вы просто устанавливаете код последней ошибки в потоке и возвращаете значение FALSE, INVALID_HANDLE_VALUE, NULL или что-то другое, более подходящее в Вашем случае.

Наборы символов
Настоящей проблемой при локализации всегда были операции с различными наборами символов. Годами, кодируя текстовые строки как последовательности однобайтовых символов с нулем в конце, большинство программистов так к этому привыкло, что это стало чуть ли не второй их натурой. Вызываемая нами функция strlen возвращает количество символов в заканчивающемся нулем массиве однобайтовых символов.

Что такое объект ядра
Каждый объект ядра — на самом деле просто блок памяти, выделенный ядром и доступный только ему. Этот блок представляет собой структуру данных, в элементах которой содержится информация об объекте. Некоторые элементы (дескриптор защиты, счетчик числа пользователей и др.) присутствуют во всех объектах, но большая их часть специфична для объектов конкретного типа.

Ваше первое Windows-приложение
Windows поддерживает два типа приложений: основанные на графическом интерфей се (graphical user interface, GUI) и консольные (console user interface, CUI) V приложе ний первого типа внешний интерфейс чисто графический GUI-приложения создают окна, имеют меню, взаимодействуют с пользователем через диалоговые окна и вооб ще пользуются всей стандартной "Windows'oвской" начинкой.

Определение ограничений, налагаемых на процессы в задании
Создав задание, Вы обычно строите "песочницу" (набор ограничений) для включае мых в него процессов. Ограничения бывают нескольких видов: базовые и расширенные базовые ограничения — не дают процессам в задании монопольно захватывать системные ресурсы; базовые ограничения по пользовательскому интерфейсу (UI) — блокируют возможность его изменения;

В каких случаях потоки создаются
Поток (thread) определяет последовательность исполнения кода в процессе. При инициализации процесса система всегда создает первичный поток Начинаясь со стартовою кодц из библиотеки С/С++, который в свою очередь вызывает входную функцию (WinMain, wWinMain, main или wmain) из Вашей программы, он живет до того момента, когда входная функция возвращает управление стартовому коду и тот вызывает функцию ExitProcess. Большинство приложений обходится единственным, первичным потоком

Приостановка и возобновление потоков
В объекте ядра "поток" имеется переменная — счетчик числа простоев данного по тока При вызове CreateProcess или CreateThread он инициализируется значением, равным 1, которое запрещает системе выделять новому потоку процессорное время. Та кая схема весьма разумна: сразу после создания поток не готов к выполнению, ему нужно время для инициализации.

Атомарный доступ: семейство Inferlockect-функций
Я объявил глобальную переменную g_n и инициализировал ее нулевым значени ем. Теперь представьте, что я создал два потока: один выполняет ThreadFunc1, дру гой — ThreadFunc2 Код этих функций идентичен: обе увеличивают значение глобаль ной переменной g_x па 1. Поэтому Вы, наверное, подумали: когда оба потока завер шат свою работу, значение g_x будет равно 2. Так ли это? Может быть.

Wait-функции
Wait-функции позволяют потоку в любой момент приостановиться и ждать освобож дения какого-либо объекта ядра. Из всего семейства этих функций чаще всего исполь зуется WaitForSingleObject: DWORD WaitForSingleObject( HANDLE hObject, DWORD dwMilliseconds);

Реализация критической секции: объект-оптекс
Критические секции всегда интересовали меня. В конце концов, ссли это всего лишь объекты пользовательского режима, то почему бы мне не реализовать их самому? Разве нельзя заставить их работать бсз поддержки операционной системы? Кроме того, написав собственную критическую секцию, я мог бы расширить ее функциональ ность и в чем-то даже усовершенствовать

Сценарий 1: асинхронный вызов функций
Допустим, у Вас есть серверный процесс с основным потоком, который ждет клиен тский запрос. Получив его, он порождает отдельный поток для обработки этого зап роса Тем самым основной поток освобождается для приема следующего клиентского запроса. Такой сценарий типичен в клиент-серверных приложениях.

Работа с волокнами
Во-первых, потоки в Windows реализуются на уровне ядра операционной системы, которое отлично осведомлено об их существовании и "коммутирует» их в соответ ствии с созданным Microsoft алгоритмом В то жс время волокня реализованы на уров не кода пользовательского режима, ядро ничего не знает о них, и процессорное вре мя распределяется между волокнами по алгоритму, определяемому Вами.

Виртуальное адресное пространство процесса
В Windows 2000 память, принадлежащая собственно операционной системе, тоже скрыта от любого выполняемого потока. Иными словами, ни один поток не может случайно повредить ее данные. А в Windows 98 последнее, увы, не реализовано, и есть вероятность, что выполняемый поток, случайно получив доступ к данным операционной системы, тем самым нарушит ее нормальную работу.

Системная информация
Многие параметры операционной системы (размер страницы, гранулярность выделения памяти и др) зависят от используемого в компьютере процессора Поэтому нельзя жестко «зашивать» их значения в исходный код пpoгpaмм Эту информацию надо считывать в момент инициализации процесса с помощью функции GetSystemfnfo

Резервирование региона в адресном пространстве
Для большинства программистов возможность выбора конкретного адреса резер вируемого региона — нечто совершенно новое Вспомните, как это делалось раньше операционная система просто находила подходящий по размеру блок памяти, выделяла этот блок и возвращала его адрес Но поскольку каждый процесс владеет собственным адресным пространством, у Вас появляется возможность указывать операционной системе желательный базовый адрес резервируемого региона

Стек потока в Windows 98
Блок перед стеком предназначен для перехвата его переполнения, а блок после стска — для перехвата обращений к несуществующим областям стека. Чтобы понять, какая польза от последнего блока, рассмотрим такой фрагмент кода

Проецирование в память EXE- и DLL-файлов
При вызове из потока функции CreateProcess система действует так: Отыскивает ЕХЕ-файл, указанный при вызове CreateProcess. Если файл не най ден, новый процесс не создастся, а функция возвращает FALSE. Создает новый объект ядра «процесс» Создает адресное пространство нового процесса

Стандартная куча процесса
При инициализации процесса система создает в его адресном пространстве стандарт ную кучу (process's default heap) Ее размер по умолчанию — 1 Мб Но система позволяет увеличивать этот размер, для чего надо указать компоновщику при сборке программы ключ /HEAP

DLL и адресное пространство процесса
Зачастую создать DLL проще, чем приложение, потому что она является лишь набором автономных функций, пригодных для использования любой программой, причем в DLL обычно нет кода, предназначенного для обработки циклов выборки сообщений или создания окон DLL представляет собой набор модулей исходного кода, в каждом из которых содержится определенное число функций, вызываемых приложением (исполняемым файлом) или другими DLL.

Явная загрузка DLL и связывание идентификаторов
Чтобы поток мог вызвать функцию из DLL-модуля, последний надо спроецировать на адресное пространство процесса, которому принадлежит этот поток Делается это двумя способами. Первый состоит в том, что код Вашего приложения просто ссылается на идентификаторы, содержащиеся в DLL, и гем самым заставляет загрузчик неявно загружать (и связывать) нужную DLL при запуске приложения

Динамическая локальная память потока
Каждый флаг выполняемого в системе процесса может находиться в состоянии FREE или INUSE, указывая, свободна или занята данная область локальной памяти потока (TLS-область). Microsoft гарантируетдоступность по крайней мере TLS_MINIMUM_AVAILABLE битовых флагов. Идентификатор TLS_MINIMUM_AVAILABLE определен в файле WinNT.h как 64. Но в Windows 2000 этот флаговый массив вмещает свыше 1000 элементов!

Пример внедрения DLL
Допустим, Вы хотите создать подкласс от экземпляра окна, порожденного другим процессом. Это, как Вы помните, позволит изменять поведение окна Все, что от Вас для этого требуется, — вызвать функцию SetWindowLongPtr, чтобы заменить адрес оконной процедуры в блоке памяти, принадлежащем окну, новым — указывающим на Вашу функцию WndProc.

Примеры использования обработчиков завершения
Поскольку при использовании SEH компилятор и операционная система вместе контролируют выполнение Вашего кода, то лучший, на мой взгляд, способ продемонстрировать работу SEH — изучать исходные тексты программ и рассматривать порядок выполнения операторов в каждом из примеров

Примеры использования фильтров и обработчиков исключений
В отличие от обработчиков завершения (рассмотренных в предыдущей главе), фильтры и обработчики исключений выполняются непосредственно операционной системой — нагрузка на компилятор при этом минимальна. В следующих разделах я расскажу, как обычно выполняются блоки try-except, как и когда операционная система проверяет фильтры исключений и в каких случаях она выполняет код обработчиков исключений.

Отладка по запросу
Windows позволяет подключать отладчик к любому процессу в любой момент времени — эта функциональность называется отладкой по запросу (just-in-time debugging). В этом разделе я расскажу, кяк она работает Щелкнув кнопку Cancel, Вы сообщаете функции UnhandledExceptionFilter о том, что хотиге начать отладку процесса.

Очередь сообщений потока
Как я уже говорил, одна из главных целей Windows — предоставить всем приложениям отказоустойчивую среду. Для этого любой поток должен выполняться в такой среде, где он может считать себя единственным. Точнее, у каждого потока должны быть очереди сообщений, полностью независимые от других потоков. Кроме того, для каждого потока нужно смоделировать среду, позволяющую ему самостоятельно управлять фокусом ввода с клавиатуры, активизировать окна, захватывать мышь и т. д

Поток необработанного ввода
Общая схема модели аппаратного ввода в системе показана на 27-1. При запуске система создает себе особый поток необработанного ввода (raw input thread, RIT) и системную очередь аппаратного ввода (system hardware input queue, SHIQ). RIT и SHIQ — это фундамент, на котором построена вся модель аппаратного ввода.

Азбука программирования в Win32 API

Предлагаемая читателю книга явилась плодом долгих раздумий авто­ра. Дело в том, что подавляющее большинство книг, посвященных про­граммированию для Windows, написаны с таким расчетом, чтобы пользо­ватель чуть ли не через пару прочитанных страниц мог начать программировать. Возможно, эта задача успешно выполняется. Но в этом случае возникает другая проблема: у многих программистов после по­лучения первоначальных знаний, достаточных для создания окна и простых диалогов, отпадает желание двигаться дальше. Подавляющее большинство возможностей, предоставляемых системой, остаются вне поля зрения.
По моему мнению, такой подход к изложению основ Win32 API мето­дологически неверен. Я решил пойти по другому пути: сначала расска­зать читателю о том, какие возможности предоставляет Win32 API, и только потом научить его создавать пользовательский интерфейс. Тем самым я постараюсь достичь того, что программист будет понимать возможности системы. Это позволит ему создавать более интересные программы.

Файл ресурсов
Под словом «Win32 API» автор понимает совокупность функций, предоставляющих программисту возможность создавать программы (или приложения, что то же самое) для Windows NT и Windows'95. Естественно, что эти платформы разнятся между собой. Но набор функций, составляющих API, для них один и тот же. Все функции этого набора являются 32-битными, что отражено в названии интерфейса. При употреблении термина «Win32 API» подразумевается именно набор функций.

Флаги, определяющие внешний вид и состояние окна просмотра деревьев
А теперь, после краткого знакомства с сообщениями, применяемыми в работе с окнами просмотра деревьев, рассмотрим некоторые из этих сообщений, наиболее части применяемые в прикладных программах.

Путеводитель по написанию вирусов под Win32

Серия туториалов "Путеводитель по написанию вирусов под Win32" предназначена для сугубо образовательных целей. По крайней мере именно это было целью перевода: предоставить людям информацию о формате PE-файла, работе операционной системы, таких полезных технологиях, как полиморфизм и многом другом, что может потребоваться кодеру в его нелегком пути к постижению дао программирования. То, как читатели используют эту информацию, остается на их совести.

IMAGE_FILE_HEADER

Программирование под Win32

Программа 25-1 схожа по конечному результату с простейшим приложением Windows, рассмотрен­ным в гл. 6 (пример 6-1); в ней создается и выводится на экран главное окно приложения, для которого (в отличие от примера 6-1) задаются три дополнительных характеристики: местоположение окна на экране, его размер и цвет фона окна. Программа имеет типичную для OWL-приложений структуру и состоит из трех отчетливо выделенных частей: описания класса приложения и входящих в него функций, описания класса главного окна приложения с его функциями и, наконец, главной функции OwlMain(). Функции с таким именем передается управление при запуске приложения, и она, таким образом, должна обязатель­но присутствовать в любых OWL-приложениях, заменяя собой функцию WinMain() обычных приложе­ний Windows или функцию main() приложений MS-DOS.

Win32 в машинных кодах

Мир машинных кодов для процессоров Intel IA-32 захватывающий и фантастический. Он предоставляет такие богатые возможности для творчества, что будет неудивительно, если через некоторое время станут проводить чемпионаты по спортивному программированию в машинных кодах, а лучшие творения кодеров представлять на выставках, как произведения искусства. Множество интересных находок было накоплено за прошедшие годы кодокопателями, среди которых есть как законные

Введение в машинные коды для Win32