RawClusterInfo STRUC rci_pdata dd ? ; Pointer to raw cluster data buffer rci_isecstart dd ? ; Starting sector in sector heap rci_ifat dw ? ; FAT index rci_csec db ? ; Count of raw sectors rci_flags db ? ; Flags rci_reserved dd 0 ; Reserved RawClusterInfo ENDS
Contains information used by the raw cluster I/O IOCTLs. All pointers are flat model pointers. The same structure is used for both reads and writes, but the fields are treated somewhat differently.
rci_pdata
Address of the buffer from which data is written or into which data is read. The size of the buffer, in sectors, is specified by rci_csec. The client must always specify a flat address regardless of the client's mode of execution. (For an MS-DOS program, the flat adddress is simply segment*16 + offset.) The data read or written is raw data; no compression or decompression is applied to the data. Reads return the data as it appears on the disk; writes do not modify the data before writing it to the disk. The address passed in rci_pdata may be valid only in the context of the client thread. For example, for V86 or Win32 clients.
rci_isecstart
Starting sector of the cluster specified by rci_imdfat. On reads, this field is ignored on input and filled with the value from the MDFAT entry before returning to the client. On writes, this field specifies the starting sector at which to write the cluster. A set of writes fails if any of the target sectors are not free, or if any of the target extents overlap.
rci_ifat
FAT index of the target cluster.
rci_csec
Count of sectors that the cluster actually occupies on the disk. On reads, if the actual size of the cluster does not exactly match this value, the read is cancelled.
rci_flags
Receives the values of the specified flags in the MDFAT entry to the client. On writes, this field specifies the settings of the flags for the cluster to be written. Setting RCFMARK on a write to a CVF whose version is less than 3.0 has no effect. The mark bit is intended for the use of the off-line recompressor to prevent it from trying to recompress clusters it either successfully or unsuccessfully recompressed the last time it ran. Raw write is the only means by which this bit can be set, and normal writes to a cluster clear the bit.
The rci_flags field can a combination of these values:
Value | Meaning |
RCFMARK (01h) | Marked cluster |
RCFFRAG (02h) | Fragmented cluster |
RCFUNCOMP (04h) | Uncompressed cluster |
RCFALLOC (08h) | Allocated cluster |
rci_reserved
Reserved.