A sample NCI ASL hook script is provided below for reference:
/* sampleNciHook.asl */ default debug = TRUE; default detailedDebug = TRUE; default NotificationName = ""; default DISCARD_IN_NOTIF = ""; DISCARD_IN_NOTIF = "FALSE"; icsNotificationFactory = object(); ics_domain_name = getServerName(); user = "HOOK"; aslName = this->ReadsRulesFrom->fileName; myThread = thread(); auditText = " ".aslName." Thread=".myThread." "; START { local errorOrSkip = FALSE; .. eol errorOrSkip : VERIFY_INPUT (!errorOrSkip) errorOrSkip : PRINT_SOMETHING (!errorOrSkip) } //Grab the ICS_Notification object using the name passed in. VERIFY_INPUT { local error = FALSE; do { nObj = self->object(NotificationName); if (NotificationName == "" || nObj->isNull()) { print(time().auditText." Internal Error: ". " could not find the notification". " object('".NotificationName."')!"); error = TRUE; } return error; } } /* Sample activity. */ PRINT_SOMETHING { local skip = FALSE; do { print(time().auditText.nObj->InstanceName." FROM NOTIF NCI HOOK"); } }