You need to do all processing in pre callback, because all delete related information promoted to FCB on cleanup.
Getting a handle to a delete candidate in the DfPreCleanupCallback.
Retriving handle in cleanup path is bad idea, because it`s lead to handle count incremention for file object, that in process of cleanup. Instead of this just use FILE_OBJECT, that was given to pre callback (in operations with FltReadFile for example).
Doing some operations on the file that would have been
After cleanup request reach fs, it set FO_CLEANUP_COMPLETE on FILE_OBJECT and you very limited in what you can do with it. Also ensuring of file deletion could be done in pre callback only.