MSDN gives the following steps:
"
An object is permanent if it was created with the OBJ_PERMANENT object attribute flag specified. (For more information about object attributes, see InitializeObjectAttributes.) A permanent object is created with a reference count of one, so it is not deleted when the driver dereferences it. A driver can only delete a permanent object it created by using the ZwMakeTemporaryObject routine to make it temporary. Use the following steps to delete a permanent object that you created:
- Call ObDereferenceObject.
- Call the appropriate ZwOpenXxx or ZwCreateXxx routine to get a handle for the object, if necessary.
- Call ZwMakeTemporaryObject with the handle obtained in step 2.
- Call ZwClose with the handle obtained in step 2.
"
What is the correct ZwOpen** function to use (Step 2), to get the HANDLE from a PCALLBACK_OBJECT created using ExCreateCallBack() ?
Regards
Madhavi