IAMDevMemoryAllocator Interface
The IAMDevMemoryAllocator interface enables the creation of third-party memory allocators by using an on-board memory manager object. Manycodec hardware manufacturers put on-board mapped memory for the codecs to improve the efficiency of buffer manipulation. This interface allocates that memory and provides the GetDevMemoryObject method to retrieve a device memory control object, which supports the IAMDevMemoryControl interface. Devices that share the same device ID can use the memory.
The global memory manager object exposes this interface to allocate memory from memory that is on a particular device.
When to Implement
Implement this interface when your pin must support the creation of on-board memory allocators. Source filters that are aware of on-board memory and need to create their own allocators should query for this interface, request an amount of memory and then create an allocator (aggregating the device memory control object). Source filters that don't need to create their own allocator could just use the allocator of the downstream pin (which also aggregates the device memory control object). The hardware-based filter can confirm the usage of its on-board memory by calling methods on the aggregated allocator.
When to Use
Use this interface when applications need to control the memory of codecs with on-board memory.
Methods in Vtable Order
| IUnknown methods | Description |
|---|---|
| QueryInterface | Retrieves pointers to supported interfaces. |
| AddRef | Increments the reference count. |
| Release | Decrements the reference count. |
| IAMDevMemoryAllocator methods | Description |
| GetInfo | Retrieves information about the memory capabilities. |
| CheckMemory | Tests whether a memory pointer was allocated by the specific instance (device) of the allocator. |
| Alloc | Allocates a memory buffer. |
| Free | Frees the previously allocated memory. |
| GetDevMemoryObject | Retrieves an IUnknown interface pointer to a device memory control object that can be aggregated with a custom allocator. |
Last updated on Tuesday, July 13, 2004
© 1992-2000 Microsoft Corporation. All rights reserved.