- •1. Поняття ос, її призначення та функції.
- •1. Понятие операционной системы. Назначение, состав и функции операционных систем.
- •2. Історія розвитку ос. Класифікація сучасних ос.
- •3. Основные принципы построения ос.
- •4. Операционные оболочки.
- •5. Драйверы и утилиты.
- •6. Процессы. Определение процесса. Классификация процессов ос.
- •7. Ресурсы. Определение ресурса. Классификация ресурсов ос.
- •3. Функціональні компоненти ос.
- •4. Функциональные компоненты ос. Общая характеристика
- •5. Требования к современным ос
- •4. Ядро ос. Привілейований режим і режим користувача. Системний виклик.
- •Рхитектура ос
- •Ядро и вспомогательные модули ос
- •Ядро в привилегированном режиме
- •Микроядерная архитектура
- •Тенденции в структурном построении ос
- •Монолитные системы
- •Многоуровневые системы
- •6. Ос та її оточення. Взаємодія ос і апаратного забезпечення. Засоби апаратної підтримки ос
- •Взаимодействие с аппаратным обеспечением
- •По сфере применения[править | править вики-текст]
- •Содержание
- •Описание и использование интерфейсов[править | править вики-текст]
- •Интерфейсы и абстрактные классы[править | править вики-текст]
- •Множественное наследование и реализация интерфейсов[править | править вики-текст]
- •8. Особливості архітектури Windows. Компоненти режиму ядра. Компоненти режиму користувача. Архитектура Windows nt
- •Режим пользователя[править | править вики-текст]
- •Режим ядра[править | править вики-текст]
- •9. Процеси і потоки в сучасних ос. Складові елементи процесів і потоків. Багатопотоковість. Стани процесів і потоків. Поток выполнения
- •Отличие от процессов[править | править вики-текст]
- •Многопоточность[править | править вики-текст]
- •10. Інтерфейс Windows api. Версії Windows api. Категорії функцій Windows api.
- •Содержание
- •Общие сведения[править | править вики-текст]
- •Содержание
- •Api как средство интеграции приложений[править | править вики-текст]
- •Сигнатура функции[править | править вики-текст]
- •Семантика функции[править | править вики-текст]
- •Api операционных систем. Проблемы, связанные с многообразием api[править | править вики-текст]
- •Структура security_attributes
- •Возвращаемые значения
- •Замечания
- •Содержание
- •Общие сведения[править | править вики-текст]
- •Секреты многопоточности: изучаем модульное тестирование в сфере мобильного программинга
- •Объект ядра Событие
- •Объект ядра Мьютекс
- •Пример работы Mutex
- •Объект ядра Семафор (semaphore)
- •Критические секции
- •Атомарные операции
- •Заключение
- •15. Потоки. Функція CreateThread. Завершення потоку. Зміна класу пріоритету процесу. Установка відносного пріоритету потоку.
- •17. Робота з файлами, каталогами і дисками в Win32. Отримання інформації про диски, вільний простір.
- •18. Функція CreateFile та її параметри. Функция CreateFile
- •Коммуникационные ресурсы
- •19. Функції Windows api для пошуку файлів. Применение функций Windows api
- •Функции LoadKeyboardLayout и UnloadKeyboardLayout
- •Функция GetLocalTime
- •Функция GetTickCount
- •Функция GlobalMemoryStatus
- •Функция Sleep
- •Функции для работы с guid
- •Функция ShellExecute
- •Функция shFileOperation
- •20. Функції Windows api для читання даних з файлу та запису в файл. Синхронні і асинхронні операції з файлами. Функции api для работы с консолью
- •Использование русского языка в консоли с помощью api
- •Чтение/запись данных в консоль/файл
- •Установка заголовка окна консоли
- •Установка цвета символов и фона в консоли
- •Установка позиции курсора
Коммуникационные ресурсы
Функция CreateFile может создать дескриптор коммуникационного ресурса (обмена данными), такого как последовательный порт COM1. Для коммуникационных ресурсов параметрdwCreationDisposition должен быть OPEN_EXISTING, а параметр hTemplate должен иметь значение ПУСТО (NULL). Доступ к операциям чтения, записи или чтения-записи может быть определен, а дескриптор может открыться для асинхронной операции ввода-вывода. Дополнительную информацию об обмене информацией, см. раздел Коммуникационные ресурсы.
Консоли
Функция CreateFile может создать дескриптор консольного ввода данных (CONIN$). Если процесс имеет открытый дескриптор для него, как результат наследования или дублирования, он может также создать и дескриптор активного экранного буфера (CONOUT$). Вызывающий процесс должен быть присоединен к унаследованной консоли или консоли назначенной функцией AllocConsole. Дескрипторы консоли, устанавливаются в параметрах CreateFile как указано ниже.
Параметры |
Значение |
lpFileName |
Используйте значение CONIN$, чтобы определить консольный ввод данных, а значение CONOUT$, чтобы определить консольный вывод данных. CONIN$ получает дескриптор буфера консольного ввода данных, даже если функция SetStdHandleпереназначала дескриптор стандартного ввода данных. Чтобы получить дескриптор стандартного ввода данных, используйте функцию GetStdHandle. CONOUT$ получает дескриптор активного экранного буфера, даже если функция SetStdHandle переназначала дескриптор стандартного вывода данных. Чтобы получить дескриптор стандартного вывода данных, используйте функцию GetStdHandle. |
dwDesiredAccess |
Предпочитается сочетание флажков GENERIC_READ | GENERIC_WRITE , но либо один, либо другой может ограничить доступ. |
dwShareMode |
Когда открываете CONIN$, убедитесь, что определили доступ FILE_SHARE_READ. Когда открываете CONOUT$, убедитесь, что определили доступ FILE_SHARE_WRITE. Если вызывающий процесс унаследовал консоль, или если дочерний процесс получил возможность обратиться к консоли, этим параметром должно быть сочетание флажков FILE_SHARE_READ | FILE_SHARE_WRITE. |
lpSecurityAttributes |
Если Вы хотите чтобы была унаследована консоль, член bInheritHandle структуры SECURITY_ATTRIBUTESдолжен иметь значение ИСТИНА (TRUE). |
dwCreationDisposition |
При использовании функции CreateFile, чтобы открыть консоль, Вы должны установить флажок OPEN_EXISTING. |
dwFlagsAndAttributes |
Игнорируется. |
hTemplateFile |
Игнорируется. |
Список ниже показывает воздействие различных настроек параметров dwDesiredAccess и lpFileName.
lpFileName |
dwDesiredAccess |
Результат воздействия |
CON |
GENERIC_READ |
Открывает консоль для ввода данных. |
CON |
GENERIC_WRITE |
Открывает консоль для вывода данных. |
CON |
GENERIC_READ GENERIC_WRITE |
Windows 95/98/Me: Становится причиной завершения ошибкой работы функцииCreateFile; функция GetLastError возвращает код ошибки ERROR_PATH_NOT_FOUND. Windows NT/2000/XP: Становится причиной завершения ошибкой работы функцииCreateFile; функция GetLastError возвращает код ошибки ERROR_FILE_NOT_FOUND. |
Обменный почтовый ящик в ядре Windows
Если CreateFile открывает клиентский конец обменного почтового ящика (слота), функция возвращает значение INVALID_HANDLE_VALUE, если клиент почтового слота пытается открыть локальный почтовый слот прежде, чем сервер почтового слота создаст его при помощи функции CreateMailSlot. Подробную информацию о почтовых ящиках в ядре Windows, см. Обменные почтовые ящики в ядреWindows.
Каналы
Если CreateFile открывает клиентский конец именованного канала, функция использует любой экземпляр именованного канала, который находится в состоянии прослушивания. Процесс открытия может дублировать дескриптор столько раз, сколько этого требуется, но, как только откроется, этот экземпляр именованного канала не может открыться другим клиентом. Доступ определяется таким, чтобы когда канал открывается, то должен быть совместим с доступом, заданным в параметре dwOpenMode функции CreateNamedPipe. Подробную информацию о каналах, см. в главе Каналы.
Код примера
