Порядок контроля доступа субъекта к охраняемому объекту
сис тема управления безопасностью просматривает список DACL охра няемого объекта для поиска элемента, в котором хранится идентификатор безопасности субъекта
если такой элемент в списке DACL не найден, то поток получает отказ в доступе к объекту
если найденный элемент имеет тип ACCESS_ALLOWED_ACE, то система безопасности проверяет, установлены ли в этом элементе флаги прав доступа субъекта, которые соответствуют за прашиваемому потоком доступу
если такие флаги установлены, то поток получает доступ к охраняемому объекту, в противном случае поток получает отказ в доступе к охраняемому объекту
Порядок определения потока, в контексте которого исполня ется асинхронная процедура
вызвать функцию QueueUserAPC, которая связывает асинхронную про цедуру с потоком
поместить асинхронную про цедуру в очередь асинхронных процедур
в пользо вательскую очередь асинхронная процедура ставится при помощи функции QueueUserAPC
в системную очередь асинхронная процедура ставится опе рационной системой
Порядок получения монопольного доступа к куче
поток вызывает функцию HeapLock
в случае успешного завершения эта функция блокирует доступ остальных потоков к куче и возвращает ненулевое значение
если другой поток вызывает какую-нибудь функцию для доступа к этой куче, то система переведет его в состояние ожидания до тех пор, пока поток, вызвавший функцию HeapLock, не вызовет функцию HeapUnlock
в случае успешного завершения функция HeapUnlock разблокирует кучу и возвраща ет ненулевое значение, а в случае неудачи куча остается заблокированной и функция возвращает значение FALSE
Порядок просмотра элементов кучи с помощью функции HeapWalk
вызвать функцию HeapWalk
установить значение поля lpData в структуре PROCESS_HEAP_ENTRY в значение NULL
последовательно вызывать функцию HeapWalk, не изменяя значения параметров hHеар, lpEntry и со держимого полей структуры PROCESS_HEAP_ENTRY
при вызове функции по сле просмотра последнего элемента кучи функция HeapWalk возвращает зна чение FALSE
Порядок работы с именованными каналами
создание именованного канала сервером
соединение сервера с экземпляром именованного канала
соединение клиента с экземпляром именованного канала
обмен данными по именованному каналу
Порядок работы с почтовыми ящиками
создание сервером почтового ящика
соединение клиента с почтовым ящиком
обмен данными через почтовый ящик
закрытие почтового ящика клиентом и сервером
Порядок работы функции CallNamedPipe, используемой для передачи единственной транзакции по именованному каналу
открыть именованный канал в режиме передачи данных сообщениями
функция устанавливает связь с именованным каналом, используя его имя
функция передает по именованному каналу единственное сообщение и получает сообщение в ответ
функция разрывает связь с именованным каналом
После завершения работы с виртуальной памятью ее необходимо освобо дить, используя функцию
(*ответ*) VirtualFree
VirtualAlloc
VirtualNotUse
VirtualDel
Последний элемент таблицы сервисов должен содержать пус тую структуру, т. е. структуру с пустыми
(*ответ*) указателями
Последовательность действий, выполняемая функцией ServiceMain
запустить обработчик управляющих команд от менеджера сервисов, вызвав функцию RegisterServiceCtrlHandler
установить стартующее состояние сервиса SERVICE_START_PENDING по средством вызова функции SetServiceStatus
провести локальную инициализацию сервиса
установить рабочее состояние сервиса SERVICE_RUNNING посредством вы зова функции SetServiceStatus
Последовательность действий, которые необ ходимо выполнить для работы с отображаемым в память файлом
открыть файл, который будет отображаться в память
создать объект ядра, который выполняет отображение файла
отобразить файл или его часть в адресное пространство процесса
выполнить необходимую работу с файлом