IoUnregisterPlugPlayNotification function

This routine is obsolete in Windows 7 and later versions of Windows. For more information, see the following Remarks section.

The IoUnregisterPlugPlayNotification routine removes the registration of a driver's callback routine for a PnP event.


NTKERNELAPI NTSTATUS IoUnregisterPlugPlayNotification(
  __drv_freesMem(Pool)PVOID NotificationEntry



Pointer to an opaque value representing the registration to be removed. The value was returned by a previous call to IoRegisterPlugPlayNotification.

Return Value

IoUnregisterPlugPlayNotification always returns STATUS_SUCCESS if NotificationEntry is valid.


In Windows 7 and later versions of Windows, this function is obsolete and is provided only to support existing drivers. Use the IoUnregisterPlugPlayNotificationEx routine instead.

Note The system does not synchronize between the execution of the notification routine and IoUnregisterPlugPlayNotification. Therefore, the routine can be called after the IoUnregisterPlugPlayNotification method has returned. If necessary, a driver should implement its own mechanism to ignore any notifications after IoUnregisterPlugPlayNotification has been called.
IoUnregisterPlugPlayNotification removes one PnP notification registration; that is, the registration of one driver callback routine for one PnP event category.

Drivers should unregister a notification first, then free any related context buffer.

A driver cannot be unloaded until it removes all of its PnP notification registrations because there is a reference on its driver object for each active registration.


Windows version Available starting with Windows 2000.
Target Platform Universal
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
DDI compliance rules PowerIrpDDis, HwStorPortProhibitedDDIs

See Also