Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

X86 architecture is not supported #17

Closed
cantops opened this issue Mar 2, 2019 · 9 comments
Closed

X86 architecture is not supported #17

cantops opened this issue Mar 2, 2019 · 9 comments
Assignees
Labels
bug Something isn't working

Comments

@cantops
Copy link

cantops commented Mar 2, 2019

Will there be any support plan in the future?

@cantops
Copy link
Author

cantops commented Mar 2, 2019

qq 20190302174009

@cezuni
Copy link

cezuni commented Mar 2, 2019

@cantops : Currently there's no plan to support x86. 😢 Is your screenshot related to x86 environment ?

@cantops
Copy link
Author

cantops commented Mar 4, 2019

@cezuni Yes, the driver files compiled with win32 can be installed correctly, but the above error occurred when running usbip!

@Oxalin
Copy link

Oxalin commented Mar 4, 2019

0x6f8 means ERROR_INVALID_USER_BUFFER

I'm pretty sure it is caused by a bad type under 32 bit when getting/setting the buffer size. I'll have a look at it in the next few days.

@cezuni sorry for being away these last few weeks, all the family got sick one after the other.

@Oxalin
Copy link

Oxalin commented Mar 5, 2019

@cezuni I may be wrong because I'm looking at it on the fly during my lunchtime, but I think the problem comes from using the wrong structure type in usbip-win/userspace/lib/usbip_setupdi.c, at line 115:
pdev_interface_detail->cbSize = sizeof(PSP_DEVICE_INTERFACE_DETAIL_DATA);

I think this should either be (they should be equivalent):
pdev_interface_detail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
or
pdev_interface_detail->cbSize = sizeof(*pdev_interface_detail);

What do you think of it?

@cezuni
Copy link

cezuni commented Mar 6, 2019

@Oxalin : You're correct.

Oxalin added a commit that referenced this issue Mar 6, 2019
Use the structure, not the pointer to it. We were "lucky" it was working
properly.

This should fix get_intf_detail() on 32 bit where
SetupDiGetDeviceInterfaceDetail() would fail with error 0x6f8
ERROR_INVALID_USER_BUFFER
#17

Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com>
@Oxalin
Copy link

Oxalin commented Mar 6, 2019

@cantops Could you test the referenced build commit? Hopefully, this will fix the error. From there, we should be able to determine if this is working on 32 bit systems or if there is more work to do.

I'll need sometime to install a 32 bit OS in a VM or similar, we could test it regularly from there.

@cantops
Copy link
Author

cantops commented Mar 8, 2019

@Oxalin okay

@cantops
Copy link
Author

cantops commented Mar 8, 2019

@Oxalin This build commit is correct and the problem has been solved.

@Oxalin Oxalin added the bug Something isn't working label Mar 8, 2019
@Oxalin Oxalin self-assigned this Mar 8, 2019
@Oxalin Oxalin closed this as completed Mar 8, 2019
cezanne pushed a commit to oslab-ewha/VMsep that referenced this issue Feb 22, 2022
Use the structure, not the pointer to it. We were "lucky" it was working
properly.

This should fix get_intf_detail() on 32 bit where
SetupDiGetDeviceInterfaceDetail() would fail with error 0x6f8
ERROR_INVALID_USER_BUFFER
cezanne/usbip-win#17

Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants