Changeset 78535 in vbox for trunk/include/iprt
- Timestamp:
- May 15, 2019 11:48:14 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/nt/nt.h
r78488 r78535 197 197 # endif 198 198 199 # define _FSINFOCLASS OutdatedWdm_FSINFOCLASS 200 # define FS_INFORMATION_CLASS OutdatedWdm_FS_INFORMATION_CLASS 201 # define PFS_INFORMATION_CLASS OutdatedWdm_PFS_INFORMATION_CLASS 202 # define FileFsVolumeInformation OutdatedWdm_FileFsVolumeInformation 203 # define FileFsLabelInformation OutdatedWdm_FileFsLabelInformation 204 # define FileFsSizeInformation OutdatedWdm_FileFsSizeInformation 205 # define FileFsDeviceInformation OutdatedWdm_FileFsDeviceInformation 206 # define FileFsAttributeInformation OutdatedWdm_FileFsAttributeInformation 207 # define FileFsControlInformation OutdatedWdm_FileFsControlInformation 208 # define FileFsFullSizeInformation OutdatedWdm_FileFsFullSizeInformation 209 # define FileFsObjectIdInformation OutdatedWdm_FileFsObjectIdInformation 210 # define FileFsDriverPathInformation OutdatedWdm_FileFsDriverPathInformation 211 # define FileFsVolumeFlagsInformation OutdatedWdm_FileFsVolumeFlagsInformation 212 # define FileFsSectorSizeInformation OutdatedWdm_FileFsSectorSizeInformation 213 # define FileFsDataCopyInformation OutdatedWdm_FileFsDataCopyInformation 214 # define FileFsMetadataSizeInformation OutdatedWdm_FileFsMetadataSizeInformation 215 # define FileFsFullSizeInformationEx OutdatedWdm_FileFsFullSizeInformationEx 216 # define FileFsMaximumInformation OutdatedWdm_FileFsMaximumInformation 217 # define NtQueryVolumeInformationFile OutdatedWdm_NtQueryVolumeInformationFile 218 # define NtSetVolumeInformationFile OutdatedWdm_NtSetVolumeInformationFile 219 199 220 # pragma warning(push) 200 221 # ifdef RT_ARCH_X86 … … 216 237 # endif 217 238 # pragma warning(pop) 239 240 # undef _FSINFOCLASS 241 # undef FS_INFORMATION_CLASS 242 # undef PFS_INFORMATION_CLASS 243 # undef FileFsVolumeInformation 244 # undef FileFsLabelInformation 245 # undef FileFsSizeInformation 246 # undef FileFsDeviceInformation 247 # undef FileFsAttributeInformation 248 # undef FileFsControlInformation 249 # undef FileFsFullSizeInformation 250 # undef FileFsObjectIdInformation 251 # undef FileFsDriverPathInformation 252 # undef FileFsVolumeFlagsInformation 253 # undef FileFsSectorSizeInformation 254 # undef FileFsDataCopyInformation 255 # undef FileFsMetadataSizeInformation 256 # undef FileFsFullSizeInformationEx 257 # undef FileFsMaximumInformation 258 # undef NtQueryVolumeInformationFile 259 # undef NtSetVolumeInformationFile 218 260 219 261 # define IPRT_NT_NEED_API_GROUP_NTIFS … … 1553 1595 NTSYSAPI NTSTATUS NTAPI NtUnmapViewOfSection(HANDLE, PVOID); 1554 1596 1555 #ifdef IPRT_NT_USE_WINTERNL1556 typedef struct _FILE_FS_ATTRIBUTE_INFORMATION1557 {1558 ULONG FileSystemAttributes;1559 LONG MaximumComponentNameLength;1560 ULONG FileSystemNameLength;1561 WCHAR FileSystemName[1];1562 } FILE_FS_ATTRIBUTE_INFORMATION;1563 typedef FILE_FS_ATTRIBUTE_INFORMATION *PFILE_FS_ATTRIBUTE_INFORMATION;1564 1565 #endif1566 1597 NTSYSAPI NTSTATUS NTAPI NtOpenProcess(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID); 1567 1598 NTSYSAPI NTSTATUS NTAPI ZwOpenProcess(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID); … … 1581 1612 1582 1613 #ifdef IPRT_NT_USE_WINTERNL 1614 typedef struct _FILE_FS_VOLUME_INFORMATION 1615 { 1616 LARGE_INTEGER VolumeCreationTime; 1617 ULONG VolumeSerialNumber; 1618 ULONG VolumeLabelLength; 1619 BOOLEAN SupportsObjects; 1620 WCHAR VolumeLabel[1]; 1621 } FILE_FS_VOLUME_INFORMATION; 1622 typedef FILE_FS_VOLUME_INFORMATION *PFILE_FS_VOLUME_INFORMATION; 1623 typedef struct _FILE_FS_LABEL_INFORMATION 1624 { 1625 ULONG VolumeLabelLength; 1626 WCHAR VolumeLabel[1]; 1627 } FILE_FS_LABEL_INFORMATION; 1628 typedef FILE_FS_LABEL_INFORMATION *PFILE_FS_LABEL_INFORMATION; 1583 1629 typedef struct _FILE_FS_SIZE_INFORMATION 1584 1630 { … … 1589 1635 } FILE_FS_SIZE_INFORMATION; 1590 1636 typedef FILE_FS_SIZE_INFORMATION *PFILE_FS_SIZE_INFORMATION; 1637 typedef struct _FILE_FS_DEVICE_INFORMATION 1638 { 1639 DEVICE_TYPE DeviceType; 1640 ULONG Characteristics; 1641 } FILE_FS_DEVICE_INFORMATION; 1642 typedef FILE_FS_DEVICE_INFORMATION *PFILE_FS_DEVICE_INFORMATION; 1643 typedef struct _FILE_FS_ATTRIBUTE_INFORMATION 1644 { 1645 ULONG FileSystemAttributes; 1646 LONG MaximumComponentNameLength; 1647 ULONG FileSystemNameLength; 1648 WCHAR FileSystemName[1]; 1649 } FILE_FS_ATTRIBUTE_INFORMATION; 1650 typedef FILE_FS_ATTRIBUTE_INFORMATION *PFILE_FS_ATTRIBUTE_INFORMATION; 1651 typedef struct _FILE_FS_CONTROL_INFORMATION 1652 { 1653 LARGE_INTEGER FreeSpaceStartFiltering; 1654 LARGE_INTEGER FreeSpaceThreshold; 1655 LARGE_INTEGER FreeSpaceStopFiltering; 1656 LARGE_INTEGER DefaultQuotaThreshold; 1657 LARGE_INTEGER DefaultQuotaLimit; 1658 ULONG FileSystemControlFlags; 1659 } FILE_FS_CONTROL_INFORMATION; 1660 typedef FILE_FS_CONTROL_INFORMATION *PFILE_FS_CONTROL_INFORMATION; 1661 typedef struct _FILE_FS_FULL_SIZE_INFORMATION 1662 { 1663 LARGE_INTEGER TotalAllocationUnits; 1664 LARGE_INTEGER CallerAvailableAllocationUnits; 1665 LARGE_INTEGER ActualAvailableAllocationUnits; 1666 ULONG SectorsPerAllocationUnit; 1667 ULONG BytesPerSector; 1668 } FILE_FS_FULL_SIZE_INFORMATION; 1669 typedef FILE_FS_FULL_SIZE_INFORMATION *PFILE_FS_FULL_SIZE_INFORMATION; 1670 typedef struct _FILE_FS_OBJECTID_INFORMATION 1671 { 1672 UCHAR ObjectId[16]; 1673 UCHAR ExtendedInfo[48]; 1674 } FILE_FS_OBJECTID_INFORMATION; 1675 typedef FILE_FS_OBJECTID_INFORMATION *PFILE_FS_OBJECTID_INFORMATION; 1676 typedef struct _FILE_FS_DRIVER_PATH_INFORMATION 1677 { 1678 BOOLEAN DriverInPath; 1679 ULONG DriverNameLength; 1680 WCHAR DriverName[1]; 1681 } FILE_FS_DRIVER_PATH_INFORMATION; 1682 typedef FILE_FS_DRIVER_PATH_INFORMATION *PFILE_FS_DRIVER_PATH_INFORMATION; 1683 typedef struct _FILE_FS_VOLUME_FLAGS_INFORMATION 1684 { 1685 ULONG Flags; 1686 } FILE_FS_VOLUME_FLAGS_INFORMATION; 1687 typedef FILE_FS_VOLUME_FLAGS_INFORMATION *PFILE_FS_VOLUME_FLAGS_INFORMATION; 1688 #endif 1689 #if !defined(SSINFO_OFFSET_UNKNOWN) || defined(IPRT_NT_USE_WINTERNL) 1690 typedef struct _FILE_FS_SECTOR_SIZE_INFORMATION 1691 { 1692 ULONG LogicalBytesPerSector; 1693 ULONG PhysicalBytesPerSectorForAtomicity; 1694 ULONG PhysicalBytesPerSectorForPerformance; 1695 ULONG FileSystemEffectivePhysicalBytesPerSectorForAtomicity; 1696 ULONG Flags; 1697 ULONG ByteOffsetForSectorAlignment; 1698 ULONG ByteOffsetForPartitionAlignment; 1699 } FILE_FS_SECTOR_SIZE_INFORMATION; 1700 typedef FILE_FS_SECTOR_SIZE_INFORMATION *PFILE_FS_SECTOR_SIZE_INFORMATION; 1701 # ifndef SSINFO_OFFSET_UNKNOWN 1702 # define SSINFO_OFFSET_UNKNOWN 0xffffffffUL 1703 # define SSINFO_FLAGS_ALIGNED_DEVICE 1UL 1704 # define SSINFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE 2UL 1705 # define SSINFO_FLAGS_NO_SEEK_PENALTY 4UL 1706 # define SSINFO_FLAGS_TRIM_ENABLED 8UL 1707 # define SSINFO_FLAGS_BYTE_ADDRESSABLE 16UL 1708 # endif 1709 #endif 1710 #ifdef IPRT_NT_USE_WINTERNL 1711 typedef struct _FILE_FS_DATA_COPY_INFORMATION 1712 { 1713 ULONG NumberOfCopies; 1714 } FILE_FS_DATA_COPY_INFORMATION; 1715 typedef FILE_FS_DATA_COPY_INFORMATION *PFILE_FS_DATA_COPY_INFORMATION; 1716 typedef struct _FILE_FS_METADATA_SIZE_INFORMATION 1717 { 1718 LARGE_INTEGER TotalMetadataAllocationUnits; 1719 ULONG SectorsPerAllocationUnit; 1720 ULONG BytesPerSector; 1721 } FILE_FS_METADATA_SIZE_INFORMATION; 1722 typedef FILE_FS_METADATA_SIZE_INFORMATION *PFILE_FS_METADATA_SIZE_INFORMATION; 1723 typedef struct _FILE_FS_FULL_SIZE_INFORMATION_EX 1724 { 1725 ULONGLONG ActualTotalAllocationUnits; 1726 ULONGLONG ActualAvailableAllocationUnits; 1727 ULONGLONG ActualPoolUnavailableAllocationUnits; 1728 ULONGLONG CallerTotalAllocationUnits; 1729 ULONGLONG CallerAvailableAllocationUnits; 1730 ULONGLONG CallerPoolUnavailableAllocationUnits; 1731 ULONGLONG UsedAllocationUnits; 1732 ULONGLONG TotalReservedAllocationUnits; 1733 ULONGLONG VolumeStorageReserveAllocationUnits; 1734 ULONGLONG AvailableCommittedAllocationUnits; 1735 ULONGLONG PoolAvailableAllocationUnits; 1736 ULONG SectorsPerAllocationUnit; 1737 ULONG BytesPerSector; 1738 } FILE_FS_FULL_SIZE_INFORMATION_EX; 1739 typedef FILE_FS_FULL_SIZE_INFORMATION_EX *PFILE_FS_FULL_SIZE_INFORMATION_EX; 1740 #endif /* IPRT_NT_USE_WINTERNL */ 1591 1741 1592 1742 typedef enum _FSINFOCLASS … … 1604 1754 FileFsSectorSizeInformation, 1605 1755 FileFsDataCopyInformation, 1756 FileFsMetadataSizeInformation, 1757 FileFsFullSizeInformationEx, 1606 1758 FileFsMaximumInformation 1607 1759 } FS_INFORMATION_CLASS; 1608 1760 typedef FS_INFORMATION_CLASS *PFS_INFORMATION_CLASS; 1609 1761 NTSYSAPI NTSTATUS NTAPI NtQueryVolumeInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); 1610 1762 NTSYSAPI NTSTATUS NTAPI NtSetVolumeInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); 1763 1764 #ifdef IPRT_NT_USE_WINTERNL 1611 1765 typedef struct _FILE_DIRECTORY_INFORMATION 1612 1766 {
Note:
See TracChangeset
for help on using the changeset viewer.