© 1983-2014 Novell. See COPYRIGHT file for details.

Greater Than 16 TB

Previous NCP verbs were architected to support volumes up to 16TB. In order to support volumes larger than 16TB, new NCP verbs have been introduced starting with Linux OES 2015. These new NCP verbs are documented below.


Add User Disk Space Restriction (64Bit Aware)

0x2222 22 54

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
               

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6 FunctionCode byte 22
7 SubFuncStrucLen word(Hi-Lo) 17
9 SubFunctionCode byte 54
10 VolumeNumber long(Lo-Hi) 0-254
14 ObjectID long(Lo-Hi)
18 DiskSpaceLimit quad(Lo-Hi)
0Full restriction (No space allowed)
1 thru 0x7FFFFFFFFFFFFFFERestriction in 4K blocks See remarks.
0x7FFFFFFFFFFFFFFFNo quota limitation

Reply Format:

OffsetContentTypeValue
(NCP Reply Header)

Completion Codes:

DecHexMeaning
00x00Successful
1400x8CNo Set Privileges
1500x96Server Out of Memory
1520x98Invalid Volume

Remarks:

Sets an object's volume disk space restriction. All restrictions are in 4K blocks.

Replaces 0x2222 22 33 Add User Disk Space Restriction which does not support quotas larger than 16TB.

NOTE: Valid DiskSpaceLimit values for OES 2015 are: 0 thru 0x0007FFFFFFFFFFFF, and 0x7FFFFFFFFFFFFFFF.

See Also:

0x2222 22 33Add User Disk Space Restriction
0x2222 23 17Get File Server Information
0x2222 22 55Get Object Disk Usage and Restrictions (64Bit Aware)
0x2222 22 56Scan Volume User Disk Restrictions (64Bit Aware)
0x2222 22 57Set Directory Disk Space Restriction (64Bit Aware)
0x2222 22 58Get Directory Information (64Bit Aware)
0x2222 89 41Get Directory Disk Space Restrictions (64Bit Aware)
0x2222 123 35Volume Information By Level (64Bit Aware)

Get Object Disk Usage and Restrictions (64Bit Aware)

0x2222 22 55

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
               

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6FunctionCodebyte22
7SubFuncStrucLenword(Hi-Lo)17
9SubFunctionCodebyte(Lo-Hi)54
10VolumeNumberlong(Lo-Hi)0-254
14ObjectIDlong(Lo-Hi)This call succeeds if the object ID is invalid; returning no restrictions and no space being used.

Reply Format:

OffsetContentTypeValue
(NCP Reply Header)
8Restrictionquad(Lo-Hi)
0Full restriction (No space allowed)
1 thru 0x7FFFFFFFFFFFFFFERestriction in 4K blocks
0x7FFFFFFFFFFFFFFFNo quota limitation
16InUsequad(Lo-Hi)Disk space currently being used.

Completion Codes:

DecHexMeaning
00x00Successful
1520x98Invalid Volume

Remarks:

Scans a user's disk restrictions for a volume and returns the amount of space currently being used. Replaces 0x2222 22 41 Get Object Disk Usage and Restrictions which does not support quotas larger than 16TB.

See Also:

0x2222 22 41Get Object Disk Usage and Restrictions
0x2222 23 17Get File Server Information
0x2222 22 54Add User Disk Space Restriction (64Bit Aware)
0x2222 22 56Scan Volume User Disk Restrictions (64Bit Aware)
0x2222 22 57Set Directory Disk Space Restriction (64Bit Aware)
0x2222 22 58Get Directory Information (64Bit Aware)
0x2222 89 41Get Directory Disk Space Restrictions (64Bit Aware)
0x2222 123 35Volume Information By Level (64Bit Aware)

Scan Volume User Disk Restrictions (64Bit Aware)

0x2222 22 56

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
               

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6FunctionCodebyte22
7SubFuncStrucLenword(Hi-Lo)9
9SubFunctionCodebyte56
10VolumeNumberlong(Lo-Hi)0-254
14Sequencelong(Lo-Hi)First call=0, Increment by 16 on subsequent calls.

Reply Format:

OffsetContentTypeValue
(NCP Reply Header)
8NumberOfEntrieslong(Lo-Hi)0-16 (16 suggests there are more entries that can be obtained from subequent calls.)
12Entry[NumberOfEntries]NCP_RestrictionRec_T(Array)(See NCP_RestrictionRec_T below)
 
Entry:
typedef struct NCP_RestrictionRec_S
{
long(Lo-Hi)ObjectID;
quad(Lo-Hi)Restriction;
0Full restriction (No space allowed)
1 thru 0x7FFFFFFFFFFFFFFERestriction in 4K blocks
0x7FFFFFFFFFFFFFFFNo quota limitation
} NCP_RestrictionRec_T;

Completion Codes:

DecHexMeaning
00x00Successful
1520x98Invalid Volume

Remarks:

Returns a list of the object restrictions for a specified volume. Replaces "0x2222 22 32 Scan Volume's User Disk Restrictions which does not support volumes or quotas larger than 16TB.

See Also:

0x2222 22 32 Scan Volume's User Disk Restrictions
0x2222 23 17Get File Server Information
0x2222 22 54 Add User Disk Space Restriction (64Bit Aware)
0x2222 22 55 Get Object Disk Usage and Restrictions (64Bit Aware)
0x2222 22 57 Set Directory Disk Space Restriction (64Bit Aware)
0x2222 22 58 Get Directory Information (64Bit Aware)
0x2222 89 41 Get Directory Disk Space Restrictions (64Bit Aware)
0x2222 123 35 Volume Information By Level (64Bit Aware)

Set Directory Disk Space Restriction (64Bit Aware)

0x2222 22 57

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
               

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6FunctionCodebyte22
7SubFuncStrucLenword(Hi-Lo)17
9SubFunctionCodebyte57
10DirHandlequad(Lo-Hi)0-254
18DiskSpaceLimitquad(Lo-Hi)
0Full restriction (No space allowed)
1 thru 0x7FFFFFFFFFFFFFFERestriction in 4K blocks See remarks.
0x7FFFFFFFFFFFFFFFNo quota limitation

Reply Format:

OffsetContentTypeValue
(NCP Reply Header)

Completion Codes:

DecHexMeaning
00x00Successful
10x01Invalid Space Limit
1400x8CNo Set Privileges
1910xBFInvalid Name Space

Remarks:

Sets an object's volume disk space quota (restriction). Replaces 0x2222 22 36 Set Directory Disk Space Restriction which does not support quotas larger than 16TB.

NOTE: Valid DiskSpaceLimit values for OES 2015 are: 0 thru 0x0007FFFFFFFFFFFF, and 0x7FFFFFFFFFFFFFFF.

See Also:

0x2222 22 36Set Directory Disk Space Restriction
0x2222 23 17Get File Server Information
0x2222 22 54Add User Disk Space Restriction (64Bit Aware)
0x2222 22 55Get Object Disk Usage and Restrictions (64Bit Aware)
0x2222 22 56Scan Volume User Disk Restrictions (64Bit Aware)
0x2222 22 58Get Directory Information (64Bit Aware)
0x2222 89 41Get Directory Disk Space Restrictions (64Bit Aware)
0x2222 123 35Volume Information By Level (64Bit Aware)

Get Directory Information (64Bit Aware)

0x2222 22 58

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
               

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6FunctionCodebyte22
7SubFuncStrucLenword(Hi-Lo)9
9SubFunctionCodebyte58
10DirHandlequad(Lo-Hi)

Reply Format:

OffsetContentTypeValue
(NCP Reply Header)
8TotalBlocksquad(Lo-High)
16AvailableBlocksquad(Lo-High)
24TotalDirEntriesquad(Lo-High)
32AvailableDirEntriesquad(Lo-High)
40Reserved[4]byte(Array)
44SectorsPerBlocklong(Lo-High)
48VolumeNameLenbyte
49VolumeName[volumeNameLen]byte(Array)

Completion Codes:

DecHexMeaning
00x00Successful
1550x9BBad Directory Handle

Remarks:

Returns the real size information for a directory.

Replaces 0x2222 22 45 Get Directory Information which does not support quotas larger than 16TB.

Includes space limitations on the user and volume when calculating the space available.

See Also:

0x2222 22 45Get Directory Information
0x2222 23 17Get File Server Information
0x2222 22 54 Add User Disk Space Restriction (64Bit Aware)
0x2222 22 55 Get Object Disk Usage and Restrictions (64Bit Aware)
0x2222 22 56 Scan Volume User Disk Restrictions (64Bit Aware)
0x2222 22 57 Set Directory Disk Space Restriction (64Bit Aware)
0x2222 89 41 Get Directory Disk Space Restrictions (64Bit Aware)
0x2222 123 35 Volume Information By Level (64Bit Aware)

Get Directory Disk Space Restrictions (64Bit Aware)

0x2222 89 41

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
              SP2
w/fix

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6FunctionCodebyte89
7SubFunctionword(Hi-Lo)41
8NameSpacebyte
9InfoLevelbyte0 or 1 (See below)
10Reservedbyte0x00
11EnhNWHandlePathStructEnhNetWareHandlePathStructSee: EnhNetWareHandlePathStruct

EnhNWHandlePathStruct:
The maximum size of the Handle/Path structure is 913 bytes.
 
typedef struct EnhNetWareHandlePathStruct
{
union
{
BYTEshortHandle;/* Short Directory Handle */
LONGbase;/* (Lo-Hi) Directory Base*/
}directory;
BYTEvolumeNumber;/* (0-254) */
BYTEhandleFlag;/* See NCP_HandleFlags_T */
BYTEdataTypeFlag;/* See NCP_DataTypeFlags_T */
BYTEReserved[5];/* Reserved for future use. (Zero out) */
BYTEpathComponentCnt;/* Indicates the number of path components. */
STRUCTPcomponent[];/* Path component array. */
} EnhNetWareHandlePathStruct;
 
 
handleFlag:
Valid values for (NCP_EnhNetWareHandlePath_T).handleFlag :
 
typedef enum NCP_HandleFlags_E
{
ShortDirectoryHandle= 0x00,
DirectoryBase= 0x01,
NoHandlePresent= 0xFF
} NCP_HandleFlags_T;
 
 
dataTypeFlag:
Valid values for (NCP_EnhNetWareHandlePath_T).dataTypeFlag :
 
typedef enum NCP_DataTypeFlags_E
{
ASCII_DATA_TYPE= 0x00,
UTF8_DATA_TYPE= 0x01,
} NCP_DataTypeFlags_T;
 
Pcomponent:
The Handle\Path structure is used to pass a qualified NetWare/OES Path (Len, String) in component form (pathComponentCnt is used for the number of Components). Note: The structure of the Pcomponent elements is determined by the dataTypeFlag that is passed in in the NCP request. If the dataTypeFlag in the request indicates ASCII_DATA_TYPE, then the ASCII data type version of the structure should be applied. If the dataTypeFlag in the request indicates UTF8_DATA_TYPE, then the UTF8 data type version of the structure should be applied.

The layout of the path portion of the structure will include one Pcomponent structure for each directory component of the path.

 
ASCII data type:
struct
{
BYTEPathNameLen;
BYTEPathName[];
} Pcomponent[];
 
UTF8 data type:
struct
{
WORDPathNameLen;/* (Lo-Hi) */
BYTEPathName[];
} Pcomponent[];
 

Reply Format:

The reply format is specific to the InfoLevel specified in the request header.
InfoLevel 0: Reports directory-quota assigned to directory, and the actual space available for the directory.

NOTE: The space available for ancestor (as per the directory quota assigned to ancestors) is considered. Reported MinSpaceLeft contains minimum of space available across the directory ancestors.

OffsetContentTypeValue
(NCP Reply Header)
8Maxquad(Lo-Hi) Dirctory quota set on the specified directory:
0Full restriction (No space allowed)
1 thru 0x7FFFFFFFFFFFFFFEDisk space restriction in 4K blocks
0x7FFFFFFFFFFFFFFFUnlimited (No space restriction)
16MinSpaceLeftquad(Lo-Hi) Minimum space left for the directory and directory ancestors.

MinSpaceLeft is calculated is calculated as follows:

SpaceLeftActual = DirectoryQuota - SpaceUsed
  • May be negative in case of DirectoryQuota under-booking.
  • Unlimited when DirectoryQuota is unlimited/no restriction.
SpaceLeft =
0If SpaceLeftActual is 0 or less.
SpaceLeftActualIf SpaceLeftActual is greater than 0.
 
MinSpaceLeft =
The smallest of the SpaceLeft values calculated for the current directory and ancestor directories in the path.

InfoLevel 1: Returns an array of structures with reporting quota information about the target directory, and each parent directory back to the root directory.

OffsetContentTypeValue
(NCP Reply Header)
8NumberOfEntriesbyteNumber of DirDiskSpaceRest64Bit structures that follow.
9DirDiskSpaceRestrictions[NumberOfEntries]DirDiskSpaceRest64Bit(Array)See: DirDiskSpaceRest64Bit

DirDiskSpaceRest64Bit:
 
typedef struct DirDiskSpaceRest64Bit
{
BYTELevelNumber;/* Distance from the directory to the root. */
QUADMaximumAmount;/* Amount of space assigned to directory */
QUADCurrentAmount;/* Amount of space assigned to directory minus space used by directory and its sub-directories */
} DirDiskSpaceRest64Bit;
 
LevelNumber:
Distance from this directory entry to the root directory entry.
 
MaximumAmount:
Amount of space assigned to directory.
0  Full Restriction (No space allocated).
1 thru 0x7FFFFFFFFFFFFFFE  Disk space restriction in 4K blocks.
0x7FFFFFFFFFFFFFFF  Unlimited (No space restriction).
> 0x7FFFFFFFFFFFFFFF (Negative value)  Invalid
 
CurrentAmount:
Amount of space assigned to directory minus space used by directory and its sub-directories.
0x7FFFFFFFFFFFFFFF : directory quota is unlimited for this entry.
A negative value indicates that used space is greater than quota space value assigned for the directory.
  • UsedSpace = MaximumAmount - CurrentAmount
  • Example: UsedSpace[20] = MaximumAmount[10] - currentAmount[-10]
 

Completion Codes:

DecHexMeaning
00x00Successful
1190x77Reply buffer not sufficient to return directory quota details
1500x96Target is not a subdirectory, or Server Out Of Memory
1520x98Disk Map Error or Invalid Volume
1550x9BBad Directory Handle
1560x9CInvalid Path
1610xA1Directory I/O Error
2530xFDBad Station Number
2550xFFInvalid Request Parameter(s)

Remarks:

Scans for the amount of disk space assigned to all directories between the current directory and the root directory. The reply format is dictated by the InfoLeve field of the request.

Note: The target must be a sub-directory or an eror will be returned.

Replaces 0x2222 89 39 Get Directory Disk Space Restrictions which does not support quotas larger than 16TB.

See Also:

0x2222 89 39 Get Directory Disk Space Restrictions
0x2222 23 17Get File Server Information
0x2222 22 54 Add User Disk Space Restriction (64Bit Aware)
0x2222 22 55 Get Object Disk Usage and Restrictions (64Bit Aware)
0x2222 22 56 Scan Volume User Disk Restrictions (64Bit Aware)
0x2222 22 57 Set Directory Disk Space Restriction (64Bit Aware)
0x2222 123 35 Volume Information By Level (64Bit Aware)

Volume Information By Level (64Bit Aware)

0x2222 123 35

NetWare Linux
v2.x v3.x v4.x v5.x v6.x OES 1 OES 2 OES 11 OES 2015
               

Request Format:

OffsetContentTypeValue
(NCP Request Header)
6 FunctionCode byte 123
7 SubFuncStrucLen word(Hi-Lo) 13
9 SubFuncCode byte 35
10 InpInfotype LONG(Lo-Hi) (See: InpInfoTypes_T)
14 InpId LONG(Lo-Hi) VolumeNumber or DirectoryID as specified by ImpInfoType
18 ReturnInfoMask LONG(Lo-Hi) Bit flags which indicate what information will be returned in the reply. (See: NCP_ReturnInfoMaskBits64_T)

Reply Format:

OffsetContentTypeValue
(NCP Reply Header)
8 CurrentServerTime long (Lo-Hi) Time elapsed since the server was brought up. This time is returned in ticks (approximately 1/18 of a second). When this parameter reaches 0xFFFFFFFF, it wraps to zero
12 VConsoleVersion byte Console version number. Along with the VConsoleRevision parameter, tracks the packet format. The VConsoleRevision parameter contains the console version revision number.
13 VConsoleRevision byte Console version revision number.
14 Reserved word (Lo-Hi) Reserved for future use.
16 ReturnInfoMask LONG (Lo-Hi) 0
20 ReturnData (Type as specified in ReturnInfoMask) Information returned, as specified in the request's ReturnInfoMask bit flags. (See: NCP_ReturnInfoMaskBits64_T) If multiple ReturnInfoMask bits were specified, the various items returned are orded by ReturnInfoMask bit-value order. For example, if both VINFO_RIM_VOL_INFO and VINFO_RIM_VOL_NAME bits are indicated in a request, the reply will have an NCP_VolumeInformation64_T structure starting at offset 20, followed by the volume name starting at at offset 284.
 
volumeInformation:
typedef struct NCP_VolumeInformation64_S
{
LONGVolumeType; /* (Lo-Hi) Specifies the defined type of the current volume. (See NCP_VolumeTypes_T): */
LONGStatusFlagBits; /* (Lo-Hi) Specifies the options that are currently available on the volume. (See NCP_VolumeStatusBits_T) */
QUADSectorSize; /* (Lo-Hi) Specifies the sector size (in bytes). */
QUADSectorsPerCluster; /* (Lo-Hi) Specifies the number of sectors per cluster or block. */
QUADVolumeSizeInClusters; /* (Lo-Hi) Specifies the size of the volume (in clusters or blocks). */
QUADFreedClusters; /* (Lo-Hi) Specifies the number of clusters or blocks that are currently free for allocation (does not include space that is currently available from deleted or limbo files, nor space that could be reclaimed from the suballocation file system). */
QUADSubAllocFreeableClusters; /* (Lo-Hi) Specifies the space that can be reclaimed from the suballocation file system. */
QUADFreeableLimboSectors; /* (Lo-Hi) Specifies the disk space (in clusters or blocks) that can be freed from deleted files. */
QUADNonFreeableLimboSectors; /* (Lo-Hi) Specifies the disk space (in clusters or blocks) that is currently in deleted files and is not aged enough to be classified as freeableLimboClusters. */
QUADNonFreeableAvailabileSubAllocSectors; /* (Lo-Hi) Specifies the space available to the suballocation file system, but not freeable to return as clusters or blocks. */
QUADNotUsableSubAllocSectors; /* (Lo-Hi) Specifies the disk space that is wasted by the suballocation file system. These clusters cannot be allocated by the suballocation system or used a regular clusters or blocks. */
QUADSubAllocClusters; /* (Lo-Hi) Specifies the disk space being used by the suballocation file system. */
QUADDataStreamsCount; /* (Lo-Hi) Specifies the number of data streams for real files that have data allocated to them. */
QUADLimboDataStreamsCount; /* (Lo-Hi) Specifies the number of data streams for deleted files that have data allocated to them. */
QUADOldestDeletedFileAgeInTicks; /* (Lo-Hi) Specifies the current age of the oldest file (in ticks). */
QUADCompressedDataStreamsCount; /* (Lo-Hi) Specifies the number of data streams for compressed real files. */
QUADCompressedLimboDataStreamsCount; /* (Lo-Hi) Specifies the number of data streams for compressed deleted files. */
QUADUnCompressableDataStreamsCount; /* (Lo-Hi) Specifies the number of data streams that are not compressable (real and deleted). */
QUADPreCompressedSectors; /* (Lo-Hi) Specifies the amount of disk space that was allocated to all files before they were compressed (includes "hole" space). */
QUADCompressedSectors; /* (Lo-Hi) Specifies the amount of disk space that is used by all compressed files. */
QUADMigratedFiles; /* (Lo-Hi) Specifies the number of migrated files. */
QUADMigratedSectors; /* (Lo-Hi) Specifies the amount of migrated disk space (in sectors). */
QUADClustersUsedByFAT; /* (Lo-Hi) Specifies the amount of disk space (in clusters or blocks) being used by the FAT table. */
QUADClustersUsedByDirectories; /* (Lo-Hi) Specifies the amount of disk space (in clusters or blocks) being used by directories. */
QUADClustersUsedByExtendedDirectories; /* (Lo-Hi) Specifies the amount of disk space (in clusters or blocks) being used by the extended directory space. */
QUADTotalDirectoryEntries; /* (Lo-Hi) Specifies the total number of directories that are available on the volume. */
QUADUnUsedDirectoryEntries; /* (Lo-Hi) Specifies the total number of directory entries that are not in use on the volume. */
QUADTotalExtendedDirectoryExtants; /* (Lo-Hi) Specifies the amount of extended directory space extants (128 bytes each) that are available on the volume. */
QUADUnUsedExtendedDirectoryExtants; /* (Lo-Hi) Specifies the amount of extended directory space extants (128 bytes each) that are not in use on the volume. */
QUADExtendedAttributesDefined; /* (Lo-Hi) Specifies the number of extended attributes that are defined on the volume. */
QUADExtendedAttributeExtantsUsed; /* (Lo-Hi) Specifies the number of extended directory extants that are used by the extended attributes. */
QUADDirectoryServicesObjectID; /* (Lo-Hi) Specifies the NDS ID for the volume. */
LONGVolumeLastModifiedDateAndTime; /* (Lo-Hi) Specifies the last time any file or subdirectory on the volume was modified (as tracked by the OS). */
} NCP_VolumeInformation64_T;
 
VolumeNameDetails:
typedef struct NCP_VolumeNameDetails_S
{
BYTEVolumeNameLen;
byteVolumeName[]; /* Array length is VolumeNameLen */
} NCP_VolumeNameDetails_T;
 
ReturnInfoMask Bit-flag Values:
typedef enum NCP_ReturnInfoMaskBits64_E
{
VINFO_RIM_VOL_INFO = 0x00000001, /* Causes a NCP_VolumeInformation64_T structure to be returned. */
VINFO_RIM_VOL_NAME = 0x00000002 /* Causes the volume name to be returned. */
} NCP_ReturnInfoMaskBits64_T;
 
Volume types:
typedef enum NCP_VolumeTypes_E
{
NCP_VINetWare386= 0,
NCP_VINetWare286= 1,
NCP_VINetWare386x30= 2,
NCP_VINetWare386v31= 3
} NCP_VolumeTypes_T;
 
Volume Status Bits:
typedef enum NCP_VolumeStatusBits_E
{
NCP_SubAllocEnableBit = 0x00000001,
NCP_CompressionEnabledBit = 0x00000002,
NCP_MigrationEnableBit = 0x00000004,
NCP_AuditingEnabledBit = 0x00000008,
NCP_ReadOnlyEnableBit = 0x00000010,
NCP_ImmediatePurgeBit = 0x00000020,
NCP_NSSVolumeBit = 0x80000000
} NCP_VolumeStatusBits_T;
 
ImpInfoTypes:
typedef enum NCP_InpInfoTypes_E
{
NCP_ImpInfoType_VolumeNumber= 1,
NCP_ImpInfoType_DirectoryHandle= 2
} InpInfoTypes_T;

Completion Codes:

DecHexMeaning
0 0x00 Successful
126 0x7E Invalid Length
152 0x98 Disk Map Error or Invalid Volume
255 0xFF Failure

Remarks:

Returns volume information. Replaces 0x2222 123 34 Get Volume Information By Level which does not support volumes larger than 16TB.

See Also:

0x2222 123 34Get Volume Information By Level
0x2222 23 17Get File Server Information
0x2222 22 54Add User Disk Space Restriction (64Bit Aware)
0x2222 22 55Get Object Disk Usage and Restrictions (64Bit Aware)
0x2222 22 56Scan Volume User Disk Restrictions (64Bit Aware)
0x2222 22 57Set Directory Disk Space Restriction (64Bit Aware)
0x2222 89 41Get Directory Disk Space Restrictions (64Bit Aware)