Previous Next

StreamClassDeviceNotification

Minidrivers use the StreamClassDeviceNotification routine to notify the class driver that it has completed a stream request, or that an event has occurred.

VOID 
  StreamClassDeviceNotification(
    IN STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE  NotificationType,
    IN PVOID  HwDeviceExtension, 
    PHW_STREAM_REQUEST_BLOCK  pSrb,
    PKSEVENT_ENTRY  EventEntry,
    GUID  *EventSet,
    ULONG  EventId
    );

Parameters

NotificationType
This is an enumeration value that contains the type of notification that the minidriver is sending.
DeviceRequestComplete
Indicates that the minidriver has completed its handling of the device stream request block pointed to by the optional third argument of this routine, pSrb. Once the minidriver calls StreamClassDeviceNotification with this value, the relevant SRB is owned by the class driver, which is free to deallocate it.
ReadyForNextDeviceRequest
Indicates that the minidriver is ready to receive another device request.
SignalDeviceEvent
Signals that the event specified by the EventEntry parameter has occurred.
SignalMultipleDeviceEvents
Signals all events that match the criteria specified in the EventSet and EventId parameters.
DeleteDeviceEvent
Deletes the event specified by the EventEntry parameter.
HwDeviceExtension
Pointer to the minidriver's device extension. The minidriver specifies the size of this buffer in the HW_INITIALIZATION_DATA structure it passes when it registers itself via StreamClassRegisterMinidriver. The class driver then passes pointers to the buffer in the HwDeviceExtension member of the HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXT, and PORT_CONFIGURATION_INFORMATION structures it passes to the minidriver.
pSrb
Pointer to an HW_STREAM_REQUEST_BLOCK structure. If NotificationType equals DeviceRequestComplete, this parameter points to the stream request block that the minidriver has completed processing. After StreamClassDeviceNotification completes, this address is no longer valid.
EventEntry
If NotificationType equals either SignalDeviceEvent or DeleteDeviceEvent, points to a structure of type KSEVENT_ENTRY that specifies the event to be signaled or deleted.
EventSet
Specifies the event set to match against in the device event queue if NotificationType equals SignalMultipleDeviceEvents.
EventId
Specifies the event ID to match against in the device event queue if NotificationType equals SignalMultipleDeviceEvents.

Return Value

None

Headers

Declared in strmini.h. Include strmini.h.

Comments

The minidriver uses this routine for requests or events that apply to the minidriver as a whole. Stream-specific requests or events use StreamClassStreamNotification.

See Also

StreamClassStreamNotification