структура STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR (ntddstor.h)
Структура STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR используется вместе с запросом IOCTL_STORAGE_QUERY_PROPERTY для получения данных дескриптора выравнивания доступа к хранилищу для устройства.
Синтаксис
typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
ULONG Version;
ULONG Size;
ULONG BytesPerCacheLine;
ULONG BytesOffsetForCacheAlignment;
ULONG BytesPerLogicalSector;
ULONG BytesPerPhysicalSector;
ULONG BytesOffsetForSectorAlignment;
} STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR, *PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR;
Члены
Version
Содержит размер структуры STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR. Значение этого элемента изменится по мере добавления элементов в структуру.
Size
Задает общий размер дескриптора в байтах.
BytesPerCacheLine
Число байтов в строке кэша устройства.
BytesOffsetForCacheAlignment
Смещение адреса, необходимое для правильного выравнивания доступа к кэшу, в байтах.
BytesPerLogicalSector
Число байтов в логическом секторе устройства.
BytesPerPhysicalSector
Число байтов в физическом секторе устройства.
BytesOffsetForSectorAlignment
Смещение логического сектора в первом физическом секторе, в котором размещается первый логический сектор, в байтах.
Пример. Смещение = 3 логических сектора
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|LBA |X|X|X|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|
|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|Physical | | |
|Sector | 0 | 1 | 2
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
В этом примере BytesOffsetForSectorAlignment = 3 * size_of_logical_sector.
Комментарии
Драйверы класса хранилища выдают запрос на управление устройством с IOCTL_STORAGE_QUERY_PROPERTY кода элемента управления ввода-вывода, чтобы получить эту структуру, которая содержит сведения о выравнивании доступа для операций передачи данных. Структуру можно получить либо из объекта устройства для шины, либо из FDO, который перенаправит запрос в базовую шину.
Требования
Требование | Значение |
---|---|
Заголовок | ntddstor.h (включая Ntddstor.h) |