34 #define __INCLUDE_FROM_USB_DRIVER
35 #include "../../Core/USBMode.h"
37 #if defined(USB_CAN_BE_HOST)
39 #define __INCLUDE_FROM_RNDIS_DRIVER
40 #define __INCLUDE_FROM_RNDIS_HOST_C
44 uint16_t ConfigDescriptorSize,
45 void* ConfigDescriptorData)
53 memset(&RNDISInterfaceInfo->
State, 0x00,
sizeof(RNDISInterfaceInfo->
State));
60 while (!(DataINEndpoint) || !(DataOUTEndpoint) || !(NotificationEndpoint))
62 if (!(RNDISControlInterface) ||
66 if (NotificationEndpoint)
74 DataINEndpoint =
NULL;
75 DataOUTEndpoint =
NULL;
87 NotificationEndpoint =
NULL;
98 NotificationEndpoint = EndpointData;
100 DataINEndpoint = EndpointData;
104 DataOUTEndpoint = EndpointData;
114 uint8_t InterruptPeriod;
120 EndpointAddress = DataINEndpoint->EndpointAddress;
131 EndpointAddress = DataOUTEndpoint->EndpointAddress;
141 Size =
le16_to_cpu(NotificationEndpoint->EndpointSize);
142 EndpointAddress = NotificationEndpoint->EndpointAddress;
146 InterruptPeriod = NotificationEndpoint->PollingIntervalMS;
218 uint8_t EndpointType = (Endpoint->Attributes &
EP_TYPE_MASK);
345 #define ContiguousBufferLength 1024
357 SetMessageData.SetMessage.InformationBufferLength =
cpu_to_le32(Length);
359 SetMessageData.SetMessage.DeviceVcHandle =
CPU_TO_LE32(0);
361 memcpy(&SetMessageData.ContiguousBuffer, Buffer, Length);
384 const uint16_t MaxLength)
395 #define ContiguousBufferLength 1024
398 } QueryMessageResponseData;
405 QueryMessage.InformationBufferLength =
CPU_TO_LE32(0);
406 QueryMessage.InformationBufferOffset =
CPU_TO_LE32(0);
424 memcpy(Buffer, &QueryMessageResponseData.ContiguousBuffer, MaxLength);
443 return PacketWaiting;
448 uint16_t*
const PacketLength)
477 *PacketLength = (uint16_t)
le32_to_cpu(DeviceMessage.DataLength);
495 const uint16_t PacketLength)
509 DeviceMessage.DataLength =
cpu_to_le32(PacketLength);