КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Структуры данных общего назначения в режиме ядра. Представление строк стандарта Unicode. Представление двусвязных списков.
Каждый символ в Unicode состоит из двух байтов. С одной стороны, это позволяет преодолеть все сложности по искусственному представлению символов двумя байтами. С другой стороны, это позволяет расширить набор допустимых символов до 65 536 символов. Разница с 256 символами ANSI достаточно ощутима, не так ли? Windows NT – это первая операционная система, полностью построенная на Unicode. Если функции передается ANSI-строка, она преобразуется в Unicode. Если программа пользователя ожидает результат в виде ANSI-строки, то перед возвращением строка Unicode преобразуется в ANSI. Необходимо явно объявлять строку, как состоящую из символов _UNICODE. TCHAR* pszMyString = L"This is my string"; Буква L перед строкой указывает компилятору, что строка состоит из символов Unicode.
Структура LIST_ENTRY FLink – forward, BLink – back. При добавлении в список, каждый объект должен содержать в себе структуру LIST_ENTRY. FLink указывает не на начало объекта, а на начало структуры LIST_ENTRY. Благодаря этому все списки любых объектов выглядят одинаково. Пустой список: BLink = FLink.
|