[DRIVERS]
[reactos.git] / reactos / drivers / usb / usbehci / transfer.h
1 #pragma once
2
3 #include "hardware.h"
4 #include "hwiface.h"
5 #include "physmem.h"
6 #include "usbehci.h"
7 #include <usb.h>
8 #include <ntddk.h>
9
10 PQUEUE_HEAD
11 BuildControlTransfer(PEHCI_HOST_CONTROLLER hcd,
12 ULONG DeviceAddress,
13 USBD_PIPE_HANDLE PipeHandle,
14 PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup,
15 PMDL pMdl,
16 BOOLEAN FreeMdl);
17
18 PQUEUE_HEAD
19 BuildBulkTransfer(PEHCI_HOST_CONTROLLER hcd,
20 ULONG DeviceAddress,
21 USBD_PIPE_HANDLE PipeHandle,
22 UCHAR PidDirection,
23 PMDL pMdl,
24 BOOLEAN FreeMdl);
25
26 VOID
27 BuildSetupPacketFromURB(PEHCI_HOST_CONTROLLER hcd,
28 PURB Urb,
29 PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup);
30
31 NTSTATUS
32 ExecuteTransfer(PDEVICE_OBJECT DeviceObject,
33 PUSB_DEVICE UsbDevice,
34 USBD_PIPE_HANDLE PipeHandle,
35 PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup,
36 ULONG TransferFlags,
37 PVOID TransferBufferOrMdl,
38 ULONG TransferBufferLength,
39 PIRP IrpToComplete);