NDISUIO_REQUEST_NOTIFICATION (Compact 2013)

3/26/2014

This structure is used by IOCTL_NDISUIO_REQUEST_NOTIFICATION to subscribe to adapter-related notifications.

Syntax

typedef struct{
  HANDLE hMsgQueue;
  DWORD dwNotificationTypes;
}NDISUIO_REQUEST_NOTIFICATION, *PNDISUIO_REQUEST_NOTIFICATION;

Members

  • hMsgQueue
    Handle to the message queue.
  • dwNotificationTypes
    This value should be a union of flag values. The following table shows values for dwNotificationType.

    Notification flag

    Value

    NDISUIO_NOTIFICATION_RESET_START

    0x00000001

    NDISUIO_NOTIFICATION_RESET_END

    0x00000002

    NDISUIO_NOTIFICATION_MEDIA_CONNECT

    0x00000004

    NDISUIO_NOTIFICATION_MEDIA_DISCONNECT

    0x00000008

    NDISUIO_NOTIFICATION_BIND

    0x00000010

    NDISUIO_NOTIFICATION_UNBIND

    0x00000020

    NDISUIO_NOTIFICATION_ADAPTER_ARRIVAL

    0x00000040

    NDISUIO_NOTIFICATION_ADAPTER_REMOVAL

    0x00000080

    NDISUIO_NOTIFICATION_DEVICE_POWER_UP

    0x00000200

    NDISUIO_NOTIFICATION_DEVICE_POWER_DOWN

    0x00000400

Remarks

This notification can be used by more than one application. Applications can receive this notification for any miniport driver without associating with it.

To receive notifications, an application must

  1. Create a message queue by calling CreateMsgQueue.

  2. Set hMsgQueue member of NDISUIO_REQUEST_NOTIFICATION to the handle returned by CreateMsgQueue.

  3. Set the dwNotificationType member of NDISUIO_REQUEST_NOTIFICATION to the combination of flags representing the events that are required by application. The event flags (NDISUIO_NOTIFICATION_*) are declared in Nuiouser.h

  4. Call IOCTL_NDISUIO_REQUEST_NOTIFICATION and pass the configured NDISUIO_REQUEST_NOTIFICATION structure.

Whenever a notification is received by NDISUIO, it posts an event to the message queue specified by hMsgQueue. The information about the event is returned in NDISUIO_DEVICE_NOTIFICATION.

Note

Sometimes event information returned may contain more data. In this case, the returned data is placed after NDISUIO_DEVICE_NOTIFICATION. The uiStatusBufferSize member of NDISUIO_DEVICE_NOTIFICATION is updated to indicate the size of data that is appended to this structure.

To stop receiving notifications, use IOCTL_NDISUIO_CANCEL_NOTIFICATION. The application must also close the message queue handle returned by CreateMsgQueue by calling the CloseHandle function.

Requirements

Header

nuiouser.h

See Also

Reference

NDIS 5.x Legacy Structures
NDISUIO_DEVICE_NOTIFICATION