CfXitData Structure

The CfXitData structure is contained in the CfXitData.h file, which is by default located in the $CFROOT/samples directory.

See the following example of the CfXitData.h file:

typedef struct __CfXitData {	
	int StatusDiagCode;
	BYTE StatusSeverity;
	BYTE Compression;
	char RecordFormat[2];
	short int BlockSize; 
	BYTE PermittedActions;
	char StatusMsg[255]; 
	char LocalUserId[255];
	DWORD Key;
	DWORD AllocationPrimary;
	DWORD AllocationSecondary;
	DWORD RecordLength;
	DWORD EncryptionType;
	char VolSer[7];
	int IsVolSer;
	char UNIT[9];
	int IsUnit;
	char AllocationType[2];
	char NewFileAvail[2];
	char IpAddress[255];
	char RemoteUserId[255];
	char RemoteDomain[255];
	char LocalFileName[255];
	char RemoteFileName[255];
	char WriteMode[2];
	char TransferFunction[2];
	char TransactionNumber[11];
	char TransferWork[2];
	char CheckPointRestart[2];
	char CR_LF[2];
	int DataType;
	int Port;
	DWORD ByteCount;
	BOOL FirstTime;
	int GoingToRetry;
	int TryCount;
	int TriedCount;
}CfXitData;

The following table lists the parameters that define the CfXitData structure:

Field Names Data Type Field Values
StatusDiagCode int Indicates the return code on reply:
  • x00: Success
  • x01: Failure
  • x09: Abort
StatusSeverity BYTE Indicates the severity of the transfer status:
  • x00: Success
  • x01: Informational
  • x02: Warning
  • x03: Error
  • x10: No Checkpoint
  • x20: No Restart
  • x80: Retry network error
  • x81: Retry file error
Compression BYTE Indicates the type of compressions:
  • x00: No compression
  • x11: LZ compression
  • x12: RLE compression
RecordFormat char[2] Indicates the remote file record format:
  • F: Fixed blocked
  • V: Variable blocked
  • U: Undefined
  • X: Fixed
  • Y: Variable
BlockSize Short int Indicates the z/OS dataset block size.
PermittedActions BYTE Indicates the type of permitted actions:
  • x00: None
  • x02: EOF
  • x04: CRLFEOF
  • x08: System
  • x10: Hidden
  • x20: Archive
  • x40: Read Only
  • x80: NTFS Compressed
StatusMsg char[255] Indicates the text message with transfer status.
LocalUserId char[255] Indicates the local user ID that initiates the transfer.
AllocationPrimary DWORD Indicates the initial number of units for physical storage to allocate when creating datasets.
AllocationSecondary DWORD Indicates the next number of units for physical storage to allocate as soon as the initial allocation in the datasets is used up.
RecordLength DWORD Indicates the maximum logical record length, that is, the string length used to encode the data records of the file.

The maximum logical record length in a z/OS system is 32,760.

For best results, you might omit this parameter if you want to send or receive a file into a file that already exists, because the file can be determined with an appropriate length .

Note: It is a z/OS-specific parameter.
EncryptionType DWORD Indicates the type of encryption:
  • x80: Data is not encrypted (check x00 too)
  • x40: DES Encryption
  • x20: 3DE Encryption
  • x10: Blowfish Encryption
  • x08: Blowfish Long
  • x04: Rijndael
  • x00: No encryption (check x80 too)
VolSer char[7] Indicates the remote file volume name.
IsVolSer int N/A
UNIT char[9] Indicates the remote file unit name.
IsUnit int N/A
AllocationType char[2] Indicates the type of allocation:
  • T: Tracks
  • C: Cylinders
  • K: Kilobytes
  • M: Megabytes
NewFileAvail char[2] Indicates whether the new file is available:
  • I: Immediate
  • D: Deferred (Tape)
IpAddress char[255] Indicates the IP address of the remote system.
RemoteUserId char[255] Indicates the user ID on the remote system.
RemoteDomain char[255] Indicates the Windows NT Domain for login (not required in all transfers).
LocalFileName char[255] Indicates the name of the local file for the transfer.
RemoteFileName char[255] Indicates the name of the remote file for the transfer.
WriteMode char[2] Indicates the options for file creation:
  • R: Replace
  • A: Append
  • C: Create
  • X: Create / Replace
  • Y: Create / Append
  • Z: Create / Replace / New
TransferFunction char[2] Indicates the transfer types:
  • S: Send
  • R: Receive
TransactionNumber char[11] Indicates the transaction number for the transfer.
TransferWork char[2] Indicates the type of file transfers:
  • F: File to File
  • P: File to Print
  • C: Remote Command
  • J: File to Job
CheckPointRestart char[2] Indicates whether to use checkpoint:
  • Y: Checkpoint used
  • N: Checkpoint not used
CR_LF char[2] Indicates whether to use the CR/LF delimitation:
  • Y: Yes
  • N: No
  • L: Line Feed only
DataType int Indicates the type of data:
  • 0: Binary
  • 1: ASCII
  • 2: EBCDIC
Port int Indicates the IP port number used for transfer.
ByteCount DWORD Indicates the number of bytes transmitted.
GoingToRetry int Indicates whether the transfer is successful and to retry:
  • 0: transfer is successful and never retried.
  • 4: transfer is unsuccessful due to a network error and to retry later.
  • 8: transfer is unsuccessful due to something other than a network error and to retry later.
TryCount int Indicates the value assigned to the TryNumber parameter.
TriedCount int Indicates the number of attempts for transfer.