// ksmedia.h
typedef struct {
KSPROPERTY Property;
PVOID BaseAddress;
ULONG RequestedBufferSize;
ULONG NotificationCount;
} KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION, *PKSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION;
View the official Windows Driver Kit DDI referenceNo description available.
The KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION structure appends a buffer base address, a requested buffer size, and a notification count to a KSPROPERTY structure. This structure is used by the client to request allocation of the audio buffer via KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION.
PropertyA KSPROPERTY structure that the client initializes appropriately prior to calling KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION.
BaseAddressSpecifies the buffer base address. Unless the client specifies a base address, this parameter is set to NULL.
RequestedBufferSizeSpecifies the buffer size in bytes. The driver returns the actual size of the allocated buffer in the KSRTAUDIO_BUFFER structure that it returns.
NotificationCountSpecifies the number of notifications per cycle of the cyclic buffer. Currently, the valid values are 1 or 2. A value of 1 results in notification to registered notification events at the end of the cyclic buffer. A value of 2 results in notifications at both the mid-point and the end of the cyclic buffer.
The KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION request uses the KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION structure to describe the cyclic buffer that the client requests. The driver returns a KSRTAUDIO_BUFFER structure to describe the buffer actually allocated.
As with KSPROPERTY_RTAUDIO_BUFFER, the value that the client writes into the RequestedBufferSize member is not binding on the driver.
Using KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION facilitates event signaling as DMA progresses through the cyclic buffer. KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT is used to register events to receive these notifications and KSPROPERTY_RTAUDIO_UNREGISTER_NOTIFICATION_EVENT is used to unregister events.
KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION
KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT
KSPROPERTY_RTAUDIO_UNREGISTER_NOTIFICATION_EVENT