ok_eq_ulong(VolumeInfo.VolumeLabelLength, 18);
ok_eq_size(RtlCompareMemory(VolumeInfo.VolumeLabel, L"NamedPipe", 18), 18);
ok_eq_wchar(VolumeInfo.VolumeLabel[9], 0xFFFF);
- ok_eq_ulong(IoStatusBlock.Information, 36);
+ ok_eq_ulong(IoStatusBlock.Information, (FIELD_OFFSET(FILE_FS_VOLUME_INFORMATION, VolumeLabel) + 9 * sizeof(WCHAR)));
RtlFillMemory(&VolumeInfo, sizeof(VolumeInfo), 0xFF);
Status = ZwQueryVolumeInformationFile(ServerHandle,
ok_eq_ulong(VolumeInfo.VolumeLabelLength, 18);
ok_eq_size(RtlCompareMemory(VolumeInfo.VolumeLabel, L"NamedP", 10), 10);
ok_eq_wchar(VolumeInfo.VolumeLabel[5], 0xFFFF);
- ok_eq_ulong(IoStatusBlock.Information, 28);
+ ok_eq_ulong(IoStatusBlock.Information, (FIELD_OFFSET(FILE_FS_VOLUME_INFORMATION, VolumeLabel) + 5 * sizeof(WCHAR)));
RtlFillMemory(&FileFsSizeInfo, sizeof(FileFsSizeInfo), 0xFF);
Status = ZwQueryVolumeInformationFile(ServerHandle,
ok_eq_ulong(FileFsSizeInfo.BytesPerSector, 1);
ok_eq_ulong(IoStatusBlock.Information, sizeof(FileFsSizeInfo));
- RtlFillMemory(&FileFsSizeInfo, sizeof(FileFsSizeInfo), 0xFF);
- Status = ZwQueryVolumeInformationFile(ServerHandle,
- &IoStatusBlock,
- &FileFsSizeInfo,
- sizeof(FileFsSizeInfo) - 4,
- FileFsSizeInformation);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_hex(IoStatusBlock.Status, STATUS_SUCCESS);
- ok_eq_longlong(FileFsSizeInfo.TotalAllocationUnits.QuadPart, 0);
- ok_eq_longlong(FileFsSizeInfo.AvailableAllocationUnits.QuadPart, 0);
- ok_eq_ulong(FileFsSizeInfo.SectorsPerAllocationUnit, 1);
- ok_eq_ulong(FileFsSizeInfo.BytesPerSector, 1);
- ok_eq_ulong(IoStatusBlock.Information, sizeof(FileFsSizeInfo));
-
RtlFillMemory(&FileFsDeviceInfo, sizeof(FileFsDeviceInfo), 0xFF);
Status = ZwQueryVolumeInformationFile(ServerHandle,
&IoStatusBlock,
ok_eq_ulong(FileFsDeviceInfo.DeviceType, FILE_DEVICE_NAMED_PIPE);
ok_eq_ulong(IoStatusBlock.Information, sizeof(FileFsDeviceInfo));
- RtlFillMemory(&FileFsDeviceInfo, sizeof(FileFsDeviceInfo), 0xFF);
- Status = ZwQueryVolumeInformationFile(ServerHandle,
- &IoStatusBlock,
- &FileFsDeviceInfo,
- sizeof(FileFsDeviceInfo) - 4,
- FileFsDeviceInformation);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_hex(IoStatusBlock.Status, STATUS_SUCCESS);
- ok_eq_ulong(FileFsDeviceInfo.Characteristics, 0);
- ok_eq_ulong(FileFsDeviceInfo.DeviceType, FILE_DEVICE_NAMED_PIPE);
- ok_eq_ulong(IoStatusBlock.Information, sizeof(FileFsDeviceInfo));
-
RtlFillMemory(&AttributeInfo, sizeof(AttributeInfo), 0xFF);
Status = ZwQueryVolumeInformationFile(ServerHandle,
&IoStatusBlock,
ok_eq_ulong(FileFsFullSizeInfo.SectorsPerAllocationUnit, 0);
ok_eq_ulong(FileFsFullSizeInfo.BytesPerSector, 0);
ok_eq_ulong(IoStatusBlock.Information, sizeof(FileFsFullSizeInfo));
-
- RtlFillMemory(&FileFsFullSizeInfo, sizeof(FileFsFullSizeInfo), 0xFF);
- Status = ZwQueryVolumeInformationFile(ServerHandle,
- &IoStatusBlock,
- &FileFsFullSizeInfo,
- sizeof(FileFsFullSizeInfo) - 4,
- FileFsFullSizeInformation);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_hex(IoStatusBlock.Status, STATUS_SUCCESS);
- ok_eq_longlong(FileFsFullSizeInfo.TotalAllocationUnits.QuadPart, 0);
- ok_eq_longlong(FileFsFullSizeInfo.CallerAvailableAllocationUnits.QuadPart, 0);
- ok_eq_longlong(FileFsFullSizeInfo.ActualAvailableAllocationUnits.QuadPart, 0);
- ok_eq_ulong(FileFsFullSizeInfo.SectorsPerAllocationUnit, 0);
- ok_eq_ulong(FileFsFullSizeInfo.BytesPerSector, 0);
- ok_eq_ulong(IoStatusBlock.Information, sizeof(FileFsFullSizeInfo));
}
static KSTART_ROUTINE RunTest;