- •Операционные системы и их интерфейсы.
- •Графические ос
- •Речевые ос
- •Динамически подключаемые библиотеки.
- •Потоки и процессы.
- •Локальная память потока
- •Потоки в Windows.
- •Сервисы в Windows
- •7. Процессы в виндовс
- •8.Работа с сервисами виндовс
- •Синхронизация.
- •Система информационной безопасности
- •Синхронизация потоков в Windows
- •Управление безопасностью в Windows
- •3. Управляемый доступ к сети
- •13. Взаимоисключающий доступ к переменным
- •Управление пользователями
- •Управление группами
- •Структура консольного приложения
- •Работа с идентификаторами безопасности
- •19, Работа с консолью
- •20. Работа с дескрипторами безопасности
- •21. Работа с окном консоли
- •Часть III. Программирование консольных приложений
- •22. Работа со списками управления доступом на высоком уровне
- •23. Работа с буфером экрана
- •24. Работа с привилегиями
- •Ввод-вывод на консоль
- •Работа с маркерами доступа
- •Первичный маркер доступа
- •Имперсонализирующие маркер доступа
- •Передача данных
- •Работа со списками управления доступом на низком уровне
- •Работа с анонимными каналами в Windows
- •Управление безопасностью объектов на низком уровне
- •Глава 45. Управление безопасностью объектов на низком уровне 993
- •31) Работа с именованными каналами в Windows
- •32) Win32 и Win64. Программирование в среде Win64.
- •33) Работа с почтовыми ящиками в Windows
- •34) Использование файловой системы и функций символьного ввода/вывода Windows
- •35) Фреймовая обработка исключений
- •36) Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром
- •37. Финальная обработка исключений
- •38. Обработка исключений
- •39. Виртуальная память
- •40 . Управление памятью, отображение файлов и библиотеки dll
- •41. Работа с виртуальной памятью в windows
- •42.Управление процессами
- •43. Работа с кучей в Windows
- •44. Потоки и планирование выполнения
- •45. Общие концепции управления файлами
- •46. Синхронизация потоков
- •47. Работа с файлами в Windows
- •48. Влияние синхронизации на производительность и рекомендации по ее повышению
- •49) Работа с каталогами (папками) в Windows
- •50) Усовершенствованные методы синхронизации потоков
- •51) Асинхронный вызов процедур
- •52) Взаимодействие между процессами
- •53) Асинхронный доступ к данным.
- •54) Сетевое программирование с помощью сокетов Windows
- •55)Порты завершения
- •57)Работа с ожидающим таймером
- •58)Асинхронный ввод/вывод и порты завершения
- •Порты завершения ввода-вывода
- •59)Отображение файлов в память.
- •Достоинства метода. Альтернативой отображению может служить прямое чтение файла или запись в файл. Такой способ работы менее удобен по следующим причинам:
- •60)Безопасность объектов Windows
- •Операционные системы и их интерфейсы.
33) Работа с почтовыми ящиками в Windows
Почтовым ящиком называется объект ядра операционной системы, который
обеспечивает передачу сообщений от процессов-клиентов к процессам-
серверам, выполняющимся на компьютерах в пределах локальной сети.
Процесс, который создает почтовый ящик, называется сервером почтового
ящика. Процессы, которые связываются с именованным почтовым ящиком,
называются клиентами почтового ящика. Перечислим характеристики
почтовых ящиков:
□ имеют имя, которое используется клиентами для связи с почтовыми
ящиками;
□ направление передачи данных от клиента к серверу;
□ передача данных осуществляется сообщениями;
□ обмен данными может быть как синхронным, так и асинхронным.
Хотя передача данных осуществляется только от клиента к серверу, один
почтовый ящик может иметь несколько серверов. Это происходит в том
случае, если несколько серверов создают почтовые ящики с одинаковыми
именами. Тогда все сообщения, которые посылает клиент в такой почтовый
ящик, будут получать все серверы этого почтового ящика. Однако это
выполняется только при условии, что длина сообщения меньше 425 байт, так
как в этом случае сообщения передаются дейтаграммами. Таким образом,
можно сказать, что почтовые ящики обеспечивают однонаправленную связь
типа "многие-ко-многим".
Создаются почтовые ящики процессом-сервером при помощи функции
createMaiisiot, которая имеет следующий прототип:
HANDLE CreateMaiisiot(
LPCTSTR lpName, // имя почтового ящика
DWORD dwMaxMessageSize // максимальная длина сообщения
DWORD dwReadTimeout, // интервал ожидания
LPSECURITY_ATTRIBUTES IpSecurityAttributes // атрибуты безопасности
);
В случае успешного завершения эта функция вернет дескриптор почтового
ящика, а в случае неудачи — значение invalid_handle_value.
34) Использование файловой системы и функций символьного ввода/вывода Windows
В операционных системах Windows полное имя файла представляется
строкой, которая заканчивается пустым символом. Причем длина такой строки
не может превышать мах_ратн символов. Файловые системы FAT32 и NTFS
поддерживают полные имена файлов длиной до 255 символов. Такие имена
называются длинными.
Полное имя файла состоит из компонент (подстрок), каждая из которых разделяется символом \
(обратная косая). Каждая не последняя компонента полного имени файла задает имя каталога, в котором находится файл, а последняя компонента задает имя самого файла. Поэтому полное имя файла также часто называют путем к файлу, т. к. полное имя файла фактически описывает путь по дереву каталогов к его листу, который и представляет сам файл. При формировании пути к файлу нужно придерживаться определенных правил, которые перечислены ниже:
□ имена каталогов и файлов не должны содержать символов, ASCII-коды
которых находятся в диапазоне от 0 до 31 (это служебные символы);
□ имена каталогов и файлов не должны содержать символы <,>,:,",/, \ и |;
□ имена каталогов и файлов могут содержать символы из расширенного
множества, которое включает символы с кодами от 128 до 255;
□ для обозначения текущего каталога в качестве компоненты пути
используется символ . (точка);
□ для обозначения родительского каталога для текущего каталога в качестве
компоненты пути используются символы . . (две точки);
□ в качестве компонент пути нельзя использовать имена устройств, как,
например, aux, con, lpti и pm.
Для создания новых или открытия уже существующих файлов используется
функция createFile, которая имеет следующий прототип:
HANDLE CreateFile(
LPCTSTR lpFileName, // имя файла
DWORD dwDesiredAccess, // способ доступа
DWORD dwShareMode, // режимы совместного использования
LPSECUTITY_ATTRIBUTES IpSecurutyAttributes, // атрибуты защиты
DWORD dwCreationDisposition, // создание или открытие файла
DWORD dwFlagsAndAttributes, // флаги и атрибуты
HANDLE hTemplateFile // файл атрибутов
);
В случае успешного завершения функция возвращает дескриптор созданного
или открытого файла, а в случае неудачи — значение invalid_handle_value.
