How to get PKEVENT type from a event HANDLE in driver code

Hi all,
I want to notify a user application some events in my driver code.
After reading DDK documents I think I should use KeSetEvent() somehow.
But the problem is the user level app pass a event handle it created to the driver through a custom ioctl. It was called at DISPATCH_LEVEL. But ObReferenceObjectByHandle() must be called at PASSIVE_LEVEL. If I call it directly system will crash. How can i work around it?

Thanks,
gmm

(???r??z{e?˛???m?m?{]z???&j)@u?Ӣ?칻?&ޱ??i?Z?G?j)m?W???u?칻-E?"?Ǧm??(Z?X???,??&