StreamClassDeviceNotification routine

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

Syntax


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 [in]

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 [in]

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

Remarks

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

Requirements

Target platform

Header

Strmini.h (include Strmini.h)

Library

Stream.lib

See also

StreamClassStreamNotification

 

 

Send comments about this topic to Microsoft

Show: