How to get sleep event in UMDF

Hi, I have a UMDF wbf driver, I need cancle request when system exit D0.But on Win10 1703, the OnD0Exit() may not be called.So I want register IQueueCallbackIoStop, but IQueueCallbackIoStop::OnIoStop never be called.
I added the following define and implemented OnIoStop

class CBiometricIoQueue :
public CComObjectRootEx,
public IQueueCallbackDeviceIoControl,
public IQueueCallbackIoStop
{

public:

DECLARE_NOT_AGGREGATABLE(CBiometricIoQueue)

BEGIN_COM_MAP(CBiometricIoQueue)
COM_INTERFACE_ENTRY(IQueueCallbackDeviceIoControl)
COM_INTERFACE_ENTRY(IQueueCallbackIoStop)
END_COM_MAP()

}
Did I miss anything? Or is there any other way can guarantee to get sleep event?
Thanks