- Fix a few 64-bit issues
svn path=/trunk/; revision=55653
OUT PULONG OutDescriptorLength)
{
ULONG Index, Length = 0, PageOffset, BufferLength;
OUT PULONG OutDescriptorLength)
{
ULONG Index, Length = 0, PageOffset, BufferLength;
+ PHYSICAL_ADDRESS Address;
//
// init transfer descriptor
//
// init transfer descriptor
+ //
+ // get address
+ //
+ Address = MmGetPhysicalAddress(TransferBuffer);
+
//
// use physical address
//
//
// use physical address
//
- CurrentDescriptor->BufferPointer[Index] = MmGetPhysicalAddress(TransferBuffer).LowPart;
+ CurrentDescriptor->BufferPointer[Index] = Address.LowPart;
+ CurrentDescriptor->ExtendedBufferPointer[Index] = Address.HighPart;
//
// Get the offset from page size
//
// Get the offset from page size
MaxPacketSize = m_EndpointDescriptor->EndPointDescriptor.wMaxPacketSize;
}
MaxPacketSize = m_EndpointDescriptor->EndPointDescriptor.wMaxPacketSize;
}
SetupDescriptor->Token.Bits.PIDCode = PID_CODE_SETUP_TOKEN;
SetupDescriptor->Token.Bits.TotalBytesToTransfer = sizeof(USB_DEFAULT_PIPE_SETUP_PACKET);
SetupDescriptor->Token.Bits.DataToggle = FALSE;
SetupDescriptor->Token.Bits.PIDCode = PID_CODE_SETUP_TOKEN;
SetupDescriptor->Token.Bits.TotalBytesToTransfer = sizeof(USB_DEFAULT_PIPE_SETUP_PACKET);
SetupDescriptor->Token.Bits.DataToggle = FALSE;
- SetupDescriptor->BufferPointer[0] = (ULONG)PtrToUlong(m_DescriptorSetupPacket.LowPart);
+ SetupDescriptor->BufferPointer[0] = m_DescriptorSetupPacket.LowPart;
+ SetupDescriptor->ExtendedBufferPointer[0] = m_DescriptorSetupPacket.HighPart;
InsertTailList(&QueueHead->TransferDescriptorListHead, &SetupDescriptor->DescriptorEntry);
InsertTailList(&QueueHead->TransferDescriptorListHead, &SetupDescriptor->DescriptorEntry);
QueueHead->Token.Bits.InterruptOnComplete = FALSE;
//
QueueHead->Token.Bits.InterruptOnComplete = FALSE;
//
- // FIXME check if that is really needed
//
QueueHead->PhysicalAddr = QueueHeadPhysicalAddress.LowPart;
//
QueueHead->PhysicalAddr = QueueHeadPhysicalAddress.LowPart;