IDMAChannel::RequestTransfer (Windows CE 5.0)
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.
HRESULT RequestTransfer(PHYSICAL_ADDRESSphysStart,DWORDdwSize,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 Values
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
OS Versions: Windows CE .NET 4.0 and later.
Header: Dvddrvr.idl.
See Also
IDMAChannel::GetMaxOutstandingTransfers | IDMAChannel::SetDataNotificationThreshold | IDMAChannel:IUnknown
Send Feedback on this topic to the authors