Following is a C structure that describes the parameters passed to a Notify Exit routine. ポインタは32ビット値で、すべてのlong定義は32ビットのunsignedです。
typedef enum { NXEventInitialize = 0, NXEventFileInmodOpen = 1, NXEventDBSRestart = 9, NXEventCLIError = 10, NXEventDBSError = 11, NXEventExit = 12, NXEventExportBegin = 31, NXEventReqSubmitBegin = 32, NXEventReqSubmitEnd = 33, NXEventReqFetchBegin = 34, NXEventFileOutmodOpen = 35, NXEventStmtFetchBegin = 36, NXEventStmtFetchEnd = 37, NXEventReqFetchEnd = 38, NXEventExportEnd = 39, NXEventBlockCount = 40, NXEventExportEnd64 = 41, NXEventInitializeEON = 42, NXEventReqSubmitBeginEON = 43, NXEventExportBeginEON = 44 } NfyExpEvent; typedef struct _FXNotifyExitParm { UInt32 Event; union { struct { UInt32 VersionLen; char VersionId[MAXVERSIONIDLEN]; UInt32 UtilityId; UInt32 UtilityNameLen; char UtilityName[MAXUTILITYNAMELEN]; UInt32 UserNameLen; char UserName[MAXUSERNAMELEN]; UInt32 UserStringLen; char UserString[MAXUSERSTRLEN]; }Initialize; struct { UInt32 VersionLen; char VersionId[MAXVERSIONIDLEN]; UInt32 UtilityId; UInt32 UtilityNameLen; char UtilityName[MAXUTILITYNAMELEN]; UInt32 UserNameLen; char *UserName; UInt32 UserStringLen; char UserString[MAXUSERSTRLEN]; }InitializeEON; struct { UInt32 FileNameLen; char FileOrInmodName[MAXFILENAMELEN]; UInt32 dummy; } FileInmodOpen ; struct { UInt32 dummy; } DBSRestart; struct { UInt32 ErrorCode; } CLIError; struct { UInt32 ErrorCode; } DBSError; struct { UInt32 ReturnCode; } Exit; struct { UInt32 dummy; char DatabaseName[MAXDBNAMELEN]; } ExportBegin; struct { UInt32 dummy; char *DatabaseName; } ExportBeginEON; struct { UInt32 RequestLen; char Request[MAXREQUESTLEN]; } ReqSubmitBegin; struct { UInt32 RequestLen; char *Request; } ReqSubmitBeginEON; struct { UInt32 StatementCnt; UInt32 BlockCnt; } ReqSubmitEnd; struct { UInt32 dummy; } ReqFetchBegin; struct { UInt32 FileNameLen; char FileOrOutmodName[MAXFILENAMELEN]; } FileOutmodOpen; struct { UInt32 StatementNo; UInt32 BlockCnt; } StmtFetchBegin; struct { UInt32 Records; } StmtFetchEnd; struct { UInt32 RecsExported; UInt32 RecsRejected; } ReqFetchEnd; struct { UInt32 RecsExported; UInt32 RecsRejected; } ExportEnd; struct { char RecsExported[MAXUINT64]; UInt32 RecsRejected; }ExportEnd64; struct { UInt32 BlockCount; } BlockCount; } Vals; } FXNotifyExitParm; #ifdef I370 extern long FXNotifyExit( #else extern Int32 FXNotifyExit( #endif #ifdef __STDC__ FXNotifyExitParm *Parms #endif );