Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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