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