NWSM_RECORD_HEADER_INFO

Syntax

  typedef struct 
  { 
     NWBOOLEAN                 isSubRecord; 
     UINT32                    headerSize; 
     UINT32                    recordSize; 
     NWSM_DATA_SET_NAME_LIST  *dataSetName; 
     NWSM_SCAN_INFORMATION    *scanInformation; 
     ECMATime                  archiveDateAndTime; 
     UINT32                   *addressOfRecordSize; 
     UINT32                   *addressForCRC; 
     BUFFERPTR                 crcBegin; 
     UINT32                    crcLength; 
     UINT32                    dataSetInfoRetrieved; 
     UINT32                    saveBufferSize; 
     BUFFERPTR                 saveBuffer; 
  } NWSM_RECORD_HEADER_INFO;
  

Fields

headerSize

Specifies the total size of the data set header or subheader.

recordSize

Specifies the size of the data in the record (the data set information and the portion of the data set's data in the record).

isSubRecord

Specifies if the record is a subrecord:

  • TRUE NWSMUT_BUFFER_OVERFLOW was returned from NWSMSetNewRecordHeader
  • FALSE Need a header for a new data set
dataSetName

Specifies the data set name space type as returned by NWSMTSScanDataSetBegin or NWSMTSScanNextDataSet.

scanInformation

Specifies the data set's scan information as returned by NWSMTSScanDataSetBegin or NWSMTSScanNextDataSet.

archiveDateAndTime

Specifies the date and time the data set was added to the buffer.

addressOfRecordSize

Specifies the record size value (UINT32) in the SIDF data set header or subheader.

addressForCRC

Specifies the address for the data set header CRC value:

crcBegin

Specifies where the CRC will be applied.

crcLength

Specifies the number of bytes the CRC was applied to (not valid until NWSMUpdateRecordHeader is called).

dataSetInfoRetrieved

Is used internally by NWSMGetDataSetInfo and NWSMGetRecordHeaderOnly.

saveBufferSize

Is used internally by NWSMGetDataSetInfo and NWSMGetRecordHeaderOnly.

saveBuffer

Is used internally by NWSMGetDataSetInfo and NWSMGetRecordHeaderOnly.

Remarks

recordSize is the size of the record minus the amount of data put into scanInformation and dataSetName. It is decremented to reflect the amount of data transferred from the buffer to the recordHeaderInfo parameter.

When the data set data is added to the record, you must update recordSize to reflect the record's new size.

isSubRecord remains TRUE until all of a data set's data is written to the buffer.

The time specified by archiveDateAndTime may not be the same as scanInformation.archiveDateAndTime.

addressForCRC is usually used by NWSMUpdateRecordHeader to update the CRC value after the data is inserted into the transfer buffer.

The CRC for the data set information is calculated and placed into the section automatically if setCRC is CRC_YES or CRC_LATER and no pointer is returned for addressForCRC.

crcBegin is usually used by NWSMUpdateRecordHeader to update the CRC value after the data is inserted into the transfer buffer.

The values that can be set for dataSetInfoRetrieved is listed in the following table.

Value

Description

0x00000000

DATA_SET_INFO_NOT_STARTED: The data set information has not been processed yet as set by NWSMGetRecordHeaderOnly. The retrieval of the data from the new record has not begun. Call NWSMGetDataSetinfo to retrieve this data from the transfer buffer.

0x00000001

DATA_SET_INFO_SPANNED: The data set name list or scan information spans the buffer. Call NWSMGetDataSetInfo with the same recordHeaderInfo.

0x00000002

DATA_SET_INFO_COMPLETE: dataSetName and scanInformation specify complete structures. Until dataSetInfoRetrieved returns this value, dataSetName and scanInformation cannot be used.

0x00000003

DATA_SET_INFO_DOES_NOT_EXIST: The data set information starts in the next transfer buffer. In a backup session, if the data set information cannot fit into the space left in the transfer buffer, the data set information is placed into the next transfer buffer, preceded by a subrecord header as set by NWSMGetRecordHeaderOnly. The retrieval of the data has begun. Call NWSMGetDataSetInfo to get the next portion of the data from the transfer buffer.

Set dataSetName and scanInformation to NULL or to a valid structure. The memory used by the data set name or scan information will be resized if there is not enough space.

The following fields in recordHeaderInfo are not used by NWSMGetRecordHeaderOnly:

  dataSetName 
  scanInformation 
  addressOfRecordSize 
  addressForCRC 
  crcBegin 
  crcLength 
  saveBufferSize 
  saveBuffer