1. Checkpoint of a task with a unsupported device mmap()ed will be refused because the vma type won't support checkpoint.
2. Checkpoint of any task with a unsupported /dev/foo file open will be refused because the file won't have a valid ->checkpoint() function.
However, if an application has made some changes to hardware, then we do not have a generic way of ensuring the continuity of that state after restart. It is arguable whether doing so would be a good thing.