Have you tried looking at the change detection example that ships with the DAQ driver? I found the following example:
C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Digital\Read Values\Read Dig Chan-Change Detection
This example doesn't use polling, but is true change detection.
The basic setup is:
Configure Timing --> Configure Change Detection --> Start Task --> Read --> Clear Task --> Error Check
The READ step will not start until the change is detected.
I have not seen any DAQ example that allows the user to configure an Interrupt Service Routine based on a change in a digital line. With DAQ 7.4, they recently added the functionality to create a call back function based on a digital change, but this would be done in CVI or with Measurement Studio.
Hope this helps,
Lilly
National Instruments UK