структура 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 (include Ntddstor.h) |