Microsoft DirectX 9.0


Note   The IAMDevMemoryControl interface is deprecated.

Used to synchronize with the completed write. This method returns when any data being written to the particular allocator region is fully written into the memory.


HRESULT WriteSync(void);

Return Value

Returns an HRESULT value. Possible values include the following:

Value Description
E_FAIL A time-out has occurred without this method confirming that data was written.
S_OK The data was successfully written into memory.
VFW_E_NOT_COMMITTED The allocator hasn't called the IMemAllocator::Commit method.


This method guarantees that all prior write operations to allocated memory have succeeded. Subsequent memory write operations require another call to WriteSync.

This method is implementation dependent, and is used (when necessary) to synchronize memory write operations to the memory. The driver of the on-board memory provides the implementation.

The IAMDevMemoryControl interface is typically found on memory that is accessed through a Peripheral Component Interconnect (PCI) bridge. (A PCI is a local bus for personal computers that provides a high-speed data path between the processor and peripheral devices.) Memory behind a PCI bridge must be synchronized after a memory write operation completes, if another device will access that memory from behind the PCI bridge. This is because the host access to the memory is buffered through the PCI bridge FIFO (first in first out), and the host will assume the write is completed before the bridge actually writes the data. A subsequent action by a device behind the bridge, such as a SCSI controller, might read the memory before the write is completed, if the IAMDevMemoryControl::WriteSync method is not called.

See Also