So long as an NDF data structure is accessible to the NDF_ system (i.e. so long as at least one valid NDF identifier still refers to it) the state of its components can be manipulated freely by assigning values and making calls to NDF_RESET. However, when the final identifier referring to an NDF is annulled, that NDF is released from the NDF_ system. At this point, the resulting data structure must be a valid NDF if it is subsequently to be accessed by other applications.
This requires that at least the data component should be in a defined state at this point (all other NDF components are optional, but the data component must be present if the data structure as a whole is to be valid). An error will result if this is not the case, since this probably indicates a programming fault which has resulted in failure to assign values to the data component. However, this error will not result if the NDF_ system does not have the right to modify the data structure (i.e. if it was accessed only for reading) because the fault could not then have been in the current application.