Операционные системы. Программирование в операционной среде Windows
30 3.2. Защита объектов ядра ОЯ можно защитить дескриптором защиты (security descriptor), который описывает, кто создал объект и кто имеет права на доступ к нему. Функции, создающие ОЯ, принимают указатель на структуру SECURITY ATTRIBUTES как аргумент (второй параметр во всех функциях создания ОЯ). Большинство приложений значение второго аргумента передает как NULL и создает объект с защитой по умолчанию. Такая защита подразумевает, что полный доступ к нему получают только создатель объекта и любой член группы администраторов. Если надо ограничить доступ к ОЯ, необходимо создать и инициализировать структуру SECURITY ATTRffiUTES, а затем передать ее адрес функции создания ОЯ следующим образом: SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(sa); sa.IpSecurityDescriptor = pSD, // TRUE - 0Я наследуется дочерними процессами, // FALSE - не наследуется. sa.binheritHandle = TRUE; HANDLE hFileMapping = CreateFileMapping(INVALID_HANDLE_VALUE, &sa, PAGE_READWRITE, 0, 1024, "MyFileMapping"); Чтобы получить доступ к существующему ОЯ, вместо Сгш?е-функций нужно использовать Ореи-функции. Например, если требуется считывать данные из существующей проекции файла, то необходимо осуществить вызов функции OpenFileMapping следующим образом: HANDLE hFileMapping = OpenFileMapping(FILE_MAP_READ, FALSE, "MyFileMapping") ; Значение первого параметра равное FILE MAP READ означает, что процесс, получив доступ к проекции файла, может считывать из файла данные. Если пользователю разрешен допуск к существующему ОЯ «проекция файла», то функция OpenFileMapping возвращает описатель этого ОЯ. Если пользователю отказано в доступе, функция OpenFileMapping возвращает NULL, а вызов функции GetLastError дает код ошибки ERROR ACCESS DEMED (правила работы с файлами см. Приложение 6). Кроме ОЯ приложение может использовать объекты других типов — меню, окна, курсоры мыши, кисти и шрифты. Они относятся к объектам User или GDI (Graphical Device Interface - интерфейс графического устройства). GDI — это та часть ОС Windows, которая обеспечивает поддержку аппаратно-независимой графики. У функций, создающих объекты User или GDI, нет параметра типа PSECURITY ATTRIBUTES.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy