The SYNTHDOWNLOAD structure specifies a handle for downloaded DLS data. It also specifies whether the buffer containing the DLS data can be freed.
typedef struct _SYNTHDOWNLOAD
{
HANDLE DownloadHandle;
BOOL Free;
} SYNTHDOWNLOAD, *PSYNTHDOWNLOAD;
Declared in dmusprop.h. Include dmusprop.h.
When processing a KSPROPERTY_SYNTH_DLS_DOWNLOAD get-property request, the synthesizer miniport driver uses the SYNTHDOWNLOAD structure to pass a handle back to the client. This handle uniquely identifies the downloaded DLS data. The client later specifies this same handle in KSPROPERTY_SYNTH_DLS_UNLOAD set-property request that unloads the DLS data.
If the miniport driver makes its own copy of the DLS data, it sets the Free parameter to TRUE to indicate that the client can free the buffer containing the DLS data as soon as the KSPROPERTY_SYNTH_DLS_DOWNLOAD property request completes. If the miniport driver continues to use the client's copy of the DLS data, however, it sets Free to FALSE to indicate that the client should maintain its allocation of the original DLS data buffer until it unloads the data by sending a KSPROPERTY_SYNTH_DLS_UNLOAD property request.