Union
Объединение, тип данных языка С. Состоит из простых типов данных (char, jnt и т.п.) и вложенных структур или объединений. Реализует доступ к одной и той же области памяти, как к данным разных типов. Например, тип данных LARGE_INTEGER может быть определен (в файле ntdef.h это выполняется при помощи условной компиляции) следующим образом:
typedef union _LARGE_INTEGER { struct { ULONG LowPart; LONG HighPart; } u; LONGLONG QuadPart; } LARGE_INTEGER;
Тип данных LARGE_INTEGER используется, например, в вызове KeSetTimer
для установки таймера. Для того чтобы облегчить установку значений такого типа, можно применять вызов RtlConvertLongToLargeInteger, который скроет от разработчика, как конкретно реализован тип LARGE_INTEGER.
LARGE_INTEGER interval = RtlConvertLongToLargeInteger(100*10);
![]() | Здесь и далее обращения к системным функциям (типа RtlXxx, KeXxx, loXxx, read, CreateFile
и т.п.) будут называться вызовами, а в тексте они будут обозначаться жирным шрифтом. |