IDMAChannel::RequestTransfer (Windows Embedded CE 6.0)
1/6/2010
This method sets up the DMA transfer of a contiguous memory segment with a given physical address and length. After the transfer has been set up, it returns the current number of pending requests.
Syntax
HRESULT RequestTransfer(
PHYSICAL_ADDRESS physStart,
DWORD dwSize,
VOID* pva,
DWORD* pdwPending
);
Parameters
- physStart
[in] Physical address of the memory segment to be transferred.
- dwSize
[in] Size, in bytes, of the memory segment to be transferred. This value should not exceed the maximum size specified by IDMAChannel::GetMaxOutstandingTransfers.
- pva
Virtual address of the memory segment to be transferred.
- pdwPending
[out] Returns the number of pending requests after this request is placed. This value can be NULL.
Return Value
The following table shows a list of possible return values.
Return value | Description |
---|---|
S_OK |
The request completed successfully. |
E_INVALIDARG |
An invalid argument was encountered. |
E_UNEXPECTED |
The queue is full. |
Remarks
It must be confirmed prior to calling this method that there is room in the channel to place a transfer request.
Notification that a transfer has been completed is done not on the basis of individual transfer completion, but on reaching a low-water threshold. You can use the callback in IDMAChannel::SetDataNotificationThreshold.
Requirements
Header | dvddrvr.idl |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
IDMAChannel
IDMAChannel::GetMaxOutstandingTransfers
IDMAChannel::SetDataNotificationThreshold