From: abdesslam n. <abd...@ya...> - 2012-01-27 12:48:25
|
Thank you for your answer Xiaofan! >Why do you need to get the info of every plugged device before access your specific device of interests? Actually i need to display all the devices to the user before he chooses the device to talk with! that's why i need libusb-win32 because i need to copy a .ts file in the HDD or USB disk and then check if it was copied correctly. the purpose is to check the performances of the HDD. the display allows the user to get the info about the device before testing it. it's just a simple step i have to go trough. >That two portable functions are meant only for Linux. So you can ifdef them out under Windows. For the ifndef i'm used to use it only in my .h file at the beggining to avoid the "multi-includes" (that how it was explained to me at school! because i'm still a student in a kind of internship!!).. I don't know how to do it for a function!! do i have to go into the lusb0_usb.h and put a "#ifndef" before the functions needed?? or do i have to do it in my main function?? Thank you! Regards Hades |
From: Xiaofan C. <xia...@gm...> - 2012-01-27 13:11:22
|
On Fri, Jan 27, 2012 at 8:48 PM, abdesslam najah <abd...@ya...> wrote: >>Why do you need to get the info of every plugged device > before access your specific device of interests? > > Actually i need to display all the devices to the user before he > chooses the device to talk with! that's why i need libusb-win32 > because i need to copy a .ts file in the HDD or USB disk and > then check if it was copied correctly. the purpose is to check the > performances of the HDD. the display allows the user to get the > info about the device before testing it. it's just a simple step i have > to go through. Unfortunately libusb-win32 is not the right tool to enumerate all USB device. You have to use setupapi. You can probably use libwdi as well. libusb-win32's inf-wizard uses libwdi. https://sourceforge.net/apps/mediawiki/libwdi/index.php?title=Usage int wdi_create_list(struct wdi_device_info** list, struct wdi_options_create_list* options) Synopsis: Create a struct wdi_device_info list of USB device currently present on the system. >>That two portable functions are meant only for Linux. > So you can ifdef them out under Windows. > > For the ifndef i'm used to use it only in my .h file at the > beginning to avoid the "multi-includes" (that how it was > explained to me at school! because i'm still a student in a > kind of internship!!).. I don't know how to do it for a function!! > do i have to go into the lusb0_usb.h and put a "#ifndef" > before the functions needed?? or do i have to do it in my > main function?? The two non-portable Linux only functions do not even exist in lusb0_usb.h. So you have to comment out them in your own codes. -- Xiaofan |
From: abdesslam n. <abd...@ya...> - 2012-01-27 13:41:14
|
Okay! i'll see libwdi after trying the ifndef! Where can i find the source code of those two functions? (usb_get_driver_np() et usb_detach_kernel_driver_np() ) --- En date de : Ven 27.1.12, Xiaofan Chen <xia...@gm...> a écrit : > De: Xiaofan Chen <xia...@gm...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 13h11 > On Fri, Jan 27, 2012 at 8:48 PM, > abdesslam najah > <abd...@ya...> > wrote: > >>Why do you need to get the info of every plugged > device > > before access your specific device of interests? > > > > Actually i need to display all the devices to the user > before he > > chooses the device to talk with! that's why i need > libusb-win32 > > because i need to copy a .ts file in the HDD or USB > disk and > > then check if it was copied correctly. the purpose is > to check the > > performances of the HDD. the display allows the user to > get the > > info about the device before testing it. it's just a > simple step i have > > to go through. > > Unfortunately libusb-win32 is not the right tool to > enumerate > all USB device. You have to use setupapi. > > You can probably use libwdi as well. libusb-win32's > inf-wizard uses libwdi. > > https://sourceforge.net/apps/mediawiki/libwdi/index.php?title=Usage > int wdi_create_list(struct wdi_device_info** list, struct > wdi_options_create_list* options) > Synopsis: > Create a struct wdi_device_info list of USB device > currently > present on the system. > > >>That two portable functions are meant only for > Linux. > > So you can ifdef them out under Windows. > > > > For the ifndef i'm used to use it only in my .h file at > the > > beginning to avoid the "multi-includes" (that how it > was > > explained to me at school! because i'm still a student > in a > > kind of internship!!).. I don't know how to do it for a > function!! > > do i have to go into the lusb0_usb.h and put a > "#ifndef" > > before the functions needed?? or do i have to do it in > my > > main function?? > > The two non-portable Linux only functions do not even > exist in lusb0_usb.h. So you have to comment out them > in your own codes. > > > > > -- > Xiaofan > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Xiaofan C. <xia...@gm...> - 2012-01-27 13:43:54
|
On Fri, Jan 27, 2012 at 9:41 PM, abdesslam najah <abd...@ya...> wrote: > Okay! i'll see libwdi after trying the ifndef! > Where can i find the source code of those two functions? > (usb_get_driver_np() et usb_detach_kernel_driver_np() ) As mentioned before, this is not implemented under libusb-win32 as they are Linux only. -- Xiaofan |
From: abdesslam n. <abd...@ya...> - 2012-01-27 13:55:57
|
OK but i tought that with an ifndef i can do pass it to windows? or am i wrong? --- En date de : Ven 27.1.12, Xiaofan Chen <xia...@gm...> a écrit : > De: Xiaofan Chen <xia...@gm...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 13h43 > On Fri, Jan 27, 2012 at 9:41 PM, > abdesslam najah > <abd...@ya...> > wrote: > > Okay! i'll see libwdi after trying the ifndef! > > Where can i find the source code of those two > functions? > > (usb_get_driver_np() et usb_detach_kernel_driver_np() > ) > > As mentioned before, this is not implemented under > libusb-win32 as they are Linux only. > > > -- > Xiaofan > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Xiaofan C. <xia...@gm...> - 2012-01-27 13:57:58
|
On Fri, Jan 27, 2012 at 9:55 PM, abdesslam najah <abd...@ya...> wrote: > OK but i tought that with an ifndef i can do pass it to windows? or am i wrong? What I am saying is that the functions do not exist under libusb-win32. So you have to comment them out under Windows if you only need to support Windows. Or you can use ifndef/ifdef if you need to support Linux as well. -- Xiaofan |
From: abdesslam n. <abd...@ya...> - 2012-01-27 14:11:23
|
I only need to support Windows. The problem is that i don't find the source code of those functions to comment them in my code. I need it to comment them! The code i've wrote allows me to have the information i need. --- En date de : Ven 27.1.12, Xiaofan Chen <xia...@gm...> a écrit : > De: Xiaofan Chen <xia...@gm...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 13h57 > On Fri, Jan 27, 2012 at 9:55 PM, > abdesslam najah > <abd...@ya...> > wrote: > > OK but i tought that with an ifndef i can do pass it to > windows? or am i wrong? > > What I am saying is that the functions do not exist under > libusb-win32. > So you have to comment them out under Windows if you only > need to support Windows. Or you can use ifndef/ifdef if you > need to support Linux as well. > > > -- > Xiaofan > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Pete B. <pe...@ak...> - 2012-01-27 14:14:11
|
On 2012.01.27 13:11, Xiaofan Chen wrote: > On Fri, Jan 27, 2012 at 8:48 PM, abdesslam najah > <abd...@ya...> wrote: >>> Why do you need to get the info of every plugged device >> before access your specific device of interests? >> >> Actually i need to display all the devices to the user before he >> chooses the device to talk with! that's why i need libusb-win32 >> because i need to copy a .ts file in the HDD or USB disk and >> then check if it was copied correctly. the purpose is to check the >> performances of the HDD. the display allows the user to get the >> info about the device before testing it. it's just a simple step i have >> to go through. > > Unfortunately libusb-win32 is not the right tool to enumerate > all USB device. You have to use setupapi. > > You can probably use libwdi as well. libusb-win32's > inf-wizard uses libwdi. To elaborate on Xiaofan's answer, the problem with enumeration on Windows is that, to access the properties of an enumerated devices, such as the string descriptors or other descriptors, you must have a "generic" driver installed, with a public API that allows you to perform such a request. Unfortunately, a lot of the Windows drivers (HUB, Mass Storage, proprietary drivers, as well as the limited underlying driver used by Windows to perform initial USB queries before a user-visible driver is installed) do not make such an API available for end user applications. Therefore, as long as you don't have a "generic" driver installed, you are stuck with using setupapi, which relies mostly on the properties that the OS populated in the registry. But the information you get then is quite limited (VID, PID, Interface number as well as some OS processed strings that don't necessarily reflect the string descriptors). This is basically the reason why you can't use libusb-win32 or libusb-1.0 to enumerate and then select a device according to information from the USB descriptors, as the descriptors cannot be obtained for all enumerated devices. Regards, /Pete |
From: abdesslam n. <abd...@ya...> - 2012-01-27 14:24:32
|
@Pete: I only need to display the device information, i found a code that does it but unfortunatly it uses the same functions than i do. -------------Code beggining----------------- int _tmain(int argc, _TCHAR* argv[]) { struct usb_bus *busses; struct usb_bus *bus; struct usb_device *dev,*fdev; usb_dev_handle *device_handle = 0; char info[100]; char tram[4] = {0}; char name[20]; char manu[100]; char serial[100]; int r,ret,x,y,retour,ret2,num; int string[100]; usb_init(); //Initialisation de la librairie (par example determine le chemin du repertoire des bus et peripheriques) usb_find_busses(); // Enumère tous les bus USB du systemes usb_find_devices(); // Enumère tous les peripheriques sur tous les Bus présents) for (bus = usb_busses; bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) { for (x=0;x<4 && r>0;x++) printf("%d ",string[x]); if(dev->config->interface->altsetting->bInterfaceProtocol==2) device_handle=usb_open(dev); if(device_handle) { printf("ouvert \n"); } else { printf("Operation failed :"); exit(1); } num = usb_get_driver_np(device_handle, dev->config->interface->altsetting->bInterfaceNumber, name, sizeof(name)); usb_get_string_simple(device_handle,dev->descriptor.iManufacturer,manu,sizeof(manu)); usb_get_string_simple(device_handle,dev->descriptor.iSerialNumber,serial,sizeof(serial)); usb_get_string_simple(device_handle,dev->descriptor.iProduct,info,sizeof(info)); printf("==========\n"); printf("bus : %s Device %s \n",bus->dirname,dev->filename); printf("id Vendor: %d (%x) \n",dev->descriptor.idVendor,dev->descriptor.idVendor); printf("id Product : %d\n",dev->descriptor.idProduct); printf("Device Protocol : %d \n",dev->descriptor.bDeviceProtocol); printf("Report Length : %d \n",dev->descriptor.bLength); printf("Decriptor Type : %d \n",dev->descriptor.bDescriptorType); printf("EndPoints : %d \n",dev->config->interface->altsetting->bNumEndpoints); printf("Interface Class : %d \n",dev->config->interface->altsetting->bInterfaceClass); printf("Protocol : %d \n",dev->config->interface->altsetting->bInterfaceProtocol); printf("Interface Number: %d \n",dev->config->interface->altsetting->bInterfaceNumber); printf("End point addresses : 0x%x \n",dev->config->interface->altsetting->endpoint->bEndpointAddress); printf("Device Manfucaturer : %s \n",manu); printf("Product Name : %s \n",info); printf("Device Serial Number: %s \n",serial); printf("usb driver (Default): %s \n",name); printf("===========\n"); ret2 = usb_detach_kernel_driver_np(device_handle, dev->config->interface->altsetting->bInterfaceNumber); retour = usb_claim_interface(device_handle, dev->config->interface->altsetting->bInterfaceNumber); ret = usb_release_interface(device_handle, dev->config->interface->altsetting->bInterfaceNumber); for (y=0;y<5000;y++) { r=usb_interrupt_read(device_handle,0x81,tram,4,0); for (x=0;x<4 && r>0;x++) printf("%d ",tram[x]); } usb_release_interface(device_handle,dev->config->interface->altsetting->bInterfaceNumber); usb_close(device_handle); } } return 0; } -----------------End of the code---------------- it's even better than what i did!! and it's enough for the use i want to! after displaying those information, the user will only give the function the device wanted then i start the usb_bulk_write and read for the rest of my software! I hope i was clear enough! (it's hard for me to explain it correctly in english :s:s) Regards, Hades --- En date de : Ven 27.1.12, Pete Batard <pe...@ak...> a écrit : > De: Pete Batard <pe...@ak...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 14h14 > On 2012.01.27 13:11, Xiaofan Chen > wrote: > > On Fri, Jan 27, 2012 at 8:48 PM, abdesslam najah > > <abd...@ya...> > wrote: > >>> Why do you need to get the info of every > plugged device > >> before access your specific device of interests? > >> > >> Actually i need to display all the devices to the > user before he > >> chooses the device to talk with! that's why i need > libusb-win32 > >> because i need to copy a .ts file in the HDD or USB > disk and > >> then check if it was copied correctly. the purpose > is to check the > >> performances of the HDD. the display allows the > user to get the > >> info about the device before testing it. it's just > a simple step i have > >> to go through. > > > > Unfortunately libusb-win32 is not the right tool to > enumerate > > all USB device. You have to use setupapi. > > > > You can probably use libwdi as well. libusb-win32's > > inf-wizard uses libwdi. > > To elaborate on Xiaofan's answer, the problem with > enumeration on > Windows is that, to access the properties of an enumerated > devices, such > as the string descriptors or other descriptors, you must > have a > "generic" driver installed, with a public API that allows > you to perform > such a request. > > Unfortunately, a lot of the Windows drivers (HUB, Mass > Storage, > proprietary drivers, as well as the limited underlying > driver used by > Windows to perform initial USB queries before a user-visible > driver is > installed) do not make such an API available for end user > applications. > > Therefore, as long as you don't have a "generic" driver > installed, you > are stuck with using setupapi, which relies mostly on the > properties > that the OS populated in the registry. But the information > you get then > is quite limited (VID, PID, Interface number as well as some > OS > processed strings that don't necessarily reflect the string > descriptors). > > This is basically the reason why you can't use libusb-win32 > or > libusb-1.0 to enumerate and then select a device according > to > information from the USB descriptors, as the descriptors > cannot be > obtained for all enumerated devices. > > Regards, > > /Pete > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Pete B. <pe...@ak...> - 2012-01-27 14:42:12
|
On 2012.01.27 14:24, abdesslam najah wrote: > @Pete: I only need to display the device information, i found a code that does it but unfortunatly it uses the same functions than i do. The code you list tries to display end points, serial and other descriptor information (dev->descriptor...) which can only be retrieved on Windows if a generic driver, such as libusb0.sys, WinUSB.sys or libusbK.sys has been installed for a device. For all other devices, the best you can get is what setupapi can return, as I explained above. If your interest is only with Windows, and you can work with the limited information setupapi provides (VID:PID and device name) you may want to have a look at wdi_create_list() from libwdi: http://libwdi.git.sourceforge.net/git/gitweb.cgi?p=libwdi/libwdi;a=blob;f=libwdi/libwdi.c;#l730 Regards, /Pete |
From: abdesslam n. <abd...@ya...> - 2012-01-27 15:06:04
|
Thank you Pete! I've seen the function you sent to me but it doesn't give me all the information i think (i'm a newbie in C!).. The information i need are: -serial number -Capcity -Vendor ID -Product ID -Name of the manufacturer -Model of the HDD -Product Information -Version Firmware -Size of the disk cache (??) -sectors size -USB class -usb subclass -usb protocol -driver filename Can i really do it with libwdi?? --- En date de : Ven 27.1.12, Pete Batard <pe...@ak...> a écrit : > De: Pete Batard <pe...@ak...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 14h42 > On 2012.01.27 14:24, abdesslam najah > wrote: > > @Pete: I only need to display the device information, i > found a code that does it but unfortunatly it uses the same > functions than i do. > > The code you list tries to display end points, serial and > other > descriptor information (dev->descriptor...) which can > only be retrieved > on Windows if a generic driver, such as libusb0.sys, > WinUSB.sys or > libusbK.sys has been installed for a device. > For all other devices, the best you can get is what setupapi > can return, > as I explained above. > > If your interest is only with Windows, and you can work with > the limited > information setupapi provides (VID:PID and device name) you > may want to > have a look at wdi_create_list() from libwdi: > > http://libwdi.git.sourceforge.net/git/gitweb.cgi?p=libwdi/libwdi;a=blob;f=libwdi/libwdi.c;#l730 > > Regards, > > /Pete > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Pete B. <pe...@ak...> - 2012-01-27 15:27:28
|
On 2012.01.27 15:05, abdesslam najah wrote: > Thank you Pete! > > I've seen the function you sent to me but it doesn't give me all the information i think (i'm a newbie in C!).. > > The information i need are: > -serial number > -Capcity > -Vendor ID > -Product ID > -Name of the manufacturer > -Model of the HDD > -Product Information > -Version Firmware > -Size of the disk cache (??) > -sectors size > -USB class > -usb subclass > -usb protocol > -driver filename > > Can i really do it with libwdi?? VID, PID and driver name can be obtained through SetupAPI. You may also be able to find info about the serial number, but you may have to dig it up, possibly using SetupDiGetDeviceRegistryProperty: http://msdn.microsoft.com/en-us/library/windows/hardware/ff551967.aspx Capacity, sector, HDD model size are unlikely to be available from SetupAPI - you will need to use the mass storage API and somehow link the data you retrieve there with the USB data you get from SetupAPI. Not sure about class/subclass/protocol, but maybe the disk management API can provide them, as well as the cache size. All in all, it looks like you should probably use the Windows Disk management API. I'd invite you to check the MSDN at: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363979%28v=vs.85%29.aspx and http://msdn.microsoft.com/en-us/library/windows/desktop/ee663264%28v=vs.85%29.aspx Regards, /Pete |
From: abdesslam n. <abd...@ya...> - 2012-01-27 15:44:50
|
@Pete: Thank for all your explanations but that is exactly what i wanted to avoid!! As i've already said i'm still a student newbie in C and i've never learned programming under Windows OS because we only Linux at school with gcc and makefile.. So the MSDN is really hard for me!! i've already tried but i failed!! i used the USBview Sample given by the MSDN website but i haven't understood at all how it works and how may i use all the information!! that's why i was really happy when i discovered the libusb-win32! i'll try to start learning from the beggining this weekend.. Do you know a good tutorial? if it's in french it would be better of course!! Regards, Hades --- En date de : Ven 27.1.12, Pete Batard <pe...@ak...> a écrit : > De: Pete Batard <pe...@ak...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 15h27 > On 2012.01.27 15:05, abdesslam najah > wrote: > > Thank you Pete! > > > > I've seen the function you sent to me but it doesn't > give me all the information i think (i'm a newbie in C!).. > > > > The information i need are: > > -serial number > > -Capcity > > -Vendor ID > > -Product ID > > -Name of the manufacturer > > -Model of the HDD > > -Product Information > > -Version Firmware > > -Size of the disk cache (??) > > -sectors size > > -USB class > > -usb subclass > > -usb protocol > > -driver filename > > > > Can i really do it with libwdi?? > > VID, PID and driver name can be obtained through SetupAPI. > You may also > be able to find info about the serial number, but you may > have to dig it > up, possibly using SetupDiGetDeviceRegistryProperty: > > http://msdn.microsoft.com/en-us/library/windows/hardware/ff551967.aspx > > Capacity, sector, HDD model size are unlikely to be > available from > SetupAPI - you will need to use the mass storage API and > somehow link > the data you retrieve there with the USB data you get from > SetupAPI. > > Not sure about class/subclass/protocol, but maybe the disk > management > API can provide them, as well as the cache size. > > All in all, it looks like you should probably use the > Windows Disk > management API. I'd invite you to check the MSDN at: > > http://msdn.microsoft.com/en-us/library/windows/desktop/aa363979%28v=vs.85%29.aspx > > and > > http://msdn.microsoft.com/en-us/library/windows/desktop/ee663264%28v=vs.85%29.aspx > > Regards, > > /Pete > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Pete B. <pe...@ak...> - 2012-01-27 16:26:15
|
On 2012.01.27 15:44, abdesslam najah wrote: > As i've already said i'm still a student newbie in C and i've never learned programming under Windows OS because we only Linux at school with gcc and makefile.. So the MSDN is really hard for me!! If you understand the basics of programming in C for Linux, programming in C for Windows shouldn't be that fundamentally different. It's just the API that change, with some features that were available from one side not available on the other, etc. That's not to say that using the MS APIs is easy (personally I find a that lot of time seems to be spent fighting against limitations that seem arbitrary, such as having to use multiple APIs to do one task), so my advice would be to try to take it one step at a time. If you're starting, your best bet is indeed looking at examples, as you did with USBView, and try to understand how they work --or at least how the parts that are of interest to you. Whether French or English, code is pretty much universal. Maybe you can also have a look at the Windows Driver Kit from Microsoft, which is a free download that can be obtained here: http://msdn.microsoft.com/en-us/windows/hardware/gg487463 It contains many samples, including an SPTI one (in src\storage\tools\spti), which may turn out to be what you will have to use to query the properties of your storage device. Unfortunately, low level stuff not the easiest thing to get started with, as it is usually close to protocols (here SCSI), that you may have to familiarize yourself with. But if you keep playing with samples and experiment with simple tasks in your code, it should begin to make sense and you should be able to figure out how to take it from here. If you look around, you should also be able to find Windows developer forums (possibly in French) where you can ask questions and receive advice. As long as you've done your research, most of these places are welcoming, even for basic questions, as we all have to start somewhere. Regards, /Pete |
From: abdesslam n. <abd...@ya...> - 2012-01-27 16:44:56
|
Thank you so much Pete for your help! it's very usefull for me!! As you said, it will go easier with practice i guess!! But hopefully i've found a forum for Win32 API.. I hope that will help me to end with this function and start the RBC commands!! (this function is only the beggining of my software and i can't go any further without having a correct code!!) On top of that it took me too much time and it will be hard to finish my project on time because of that :@ function!! --- En date de : Ven 27.1.12, Pete Batard <pe...@ak...> a écrit : > De: Pete Batard <pe...@ak...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 16h26 > On 2012.01.27 15:44, abdesslam najah > wrote: > > As i've already said i'm still a student newbie in C > and i've never learned programming under Windows OS because > we only Linux at school with gcc and makefile.. So the MSDN > is really hard for me!! > > If you understand the basics of programming in C for Linux, > programming > in C for Windows shouldn't be that fundamentally different. > It's just > the API that change, with some features that were available > from one > side not available on the other, etc. > > That's not to say that using the MS APIs is easy (personally > I find a > that lot of time seems to be spent fighting against > limitations that > seem arbitrary, such as having to use multiple APIs to do > one task), so > my advice would be to try to take it one step at a time. > > If you're starting, your best bet is indeed looking at > examples, as you > did with USBView, and try to understand how they work --or > at least how > the parts that are of interest to you. Whether French or > English, code > is pretty much universal. > > Maybe you can also have a look at the Windows Driver Kit > from Microsoft, > which is a free download that can be obtained here: > http://msdn.microsoft.com/en-us/windows/hardware/gg487463 > > It contains many samples, including an SPTI one (in > src\storage\tools\spti), which may turn out to be what you > will have to > use to query the properties of your storage device. > > Unfortunately, low level stuff not the easiest thing to get > started > with, as it is usually close to protocols (here SCSI), that > you may have > to familiarize yourself with. But if you keep playing with > samples and > experiment with simple tasks in your code, it should begin > to make sense > and you should be able to figure out how to take it from > here. > > If you look around, you should also be able to find Windows > developer > forums (possibly in French) where you can ask questions and > receive > advice. As long as you've done your research, most of these > places are > welcoming, even for basic questions, as we all have to start > somewhere. > > Regards, > > /Pete > > > > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: abdesslam n. <abd...@ya...> - 2012-01-27 16:45:13
|
Regards, Hades --- En date de : Ven 27.1.12, Pete Batard <pe...@ak...> a écrit : > De: Pete Batard <pe...@ak...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 16h26 > On 2012.01.27 15:44, abdesslam najah > wrote: > > As i've already said i'm still a student newbie in C > and i've never learned programming under Windows OS because > we only Linux at school with gcc and makefile.. So the MSDN > is really hard for me!! > > If you understand the basics of programming in C for Linux, > programming > in C for Windows shouldn't be that fundamentally different. > It's just > the API that change, with some features that were available > from one > side not available on the other, etc. > > That's not to say that using the MS APIs is easy (personally > I find a > that lot of time seems to be spent fighting against > limitations that > seem arbitrary, such as having to use multiple APIs to do > one task), so > my advice would be to try to take it one step at a time. > > If you're starting, your best bet is indeed looking at > examples, as you > did with USBView, and try to understand how they work --or > at least how > the parts that are of interest to you. Whether French or > English, code > is pretty much universal. > > Maybe you can also have a look at the Windows Driver Kit > from Microsoft, > which is a free download that can be obtained here: > http://msdn.microsoft.com/en-us/windows/hardware/gg487463 > > It contains many samples, including an SPTI one (in > src\storage\tools\spti), which may turn out to be what you > will have to > use to query the properties of your storage device. > > Unfortunately, low level stuff not the easiest thing to get > started > with, as it is usually close to protocols (here SCSI), that > you may have > to familiarize yourself with. But if you keep playing with > samples and > experiment with simple tasks in your code, it should begin > to make sense > and you should be able to figure out how to take it from > here. > > If you look around, you should also be able to find Windows > developer > forums (possibly in French) where you can ask questions and > receive > advice. As long as you've done your research, most of these > places are > welcoming, even for basic questions, as we all have to start > somewhere. > > Regards, > > /Pete > > > > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: abdesslam n. <abd...@ya...> - 2012-01-30 09:41:17
|
Hello! I've tried to use libwdi as you told me but i don't find any documentation or description of the functions that i can use and how to use it.. Sorry for disturbing you.. --- En date de : Ven 27.1.12, Pete Batard <pe...@ak...> a écrit : > De: Pete Batard <pe...@ak...> > Objet: Re: [Libusb-win32-devel] Non protable functions in libusb-win32 > À: lib...@li... > Date: Vendredi 27 janvier 2012, 16h26 > On 2012.01.27 15:44, abdesslam najah > wrote: > > As i've already said i'm still a student newbie in C > and i've never learned programming under Windows OS because > we only Linux at school with gcc and makefile.. So the MSDN > is really hard for me!! > > If you understand the basics of programming in C for Linux, > programming > in C for Windows shouldn't be that fundamentally different. > It's just > the API that change, with some features that were available > from one > side not available on the other, etc. > > That's not to say that using the MS APIs is easy (personally > I find a > that lot of time seems to be spent fighting against > limitations that > seem arbitrary, such as having to use multiple APIs to do > one task), so > my advice would be to try to take it one step at a time. > > If you're starting, your best bet is indeed looking at > examples, as you > did with USBView, and try to understand how they work --or > at least how > the parts that are of interest to you. Whether French or > English, code > is pretty much universal. > > Maybe you can also have a look at the Windows Driver Kit > from Microsoft, > which is a free download that can be obtained here: > http://msdn.microsoft.com/en-us/windows/hardware/gg487463 > > It contains many samples, including an SPTI one (in > src\storage\tools\spti), which may turn out to be what you > will have to > use to query the properties of your storage device. > > Unfortunately, low level stuff not the easiest thing to get > started > with, as it is usually close to protocols (here SCSI), that > you may have > to familiarize yourself with. But if you keep playing with > samples and > experiment with simple tasks in your code, it should begin > to make sense > and you should be able to figure out how to take it from > here. > > If you look around, you should also be able to find Windows > developer > forums (possibly in French) where you can ask questions and > receive > advice. As long as you've done your research, most of these > places are > welcoming, even for basic questions, as we all have to start > somewhere. > > Regards, > > /Pete > > > > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, > CSS3, MVC3, > Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > Libusb-win32-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel > |
From: Pete B. <pe...@ak...> - 2012-01-30 15:23:49
|
On 2012.01.30 09:41, abdesslam najah wrote: > Hello! > > I've tried to use libwdi as you told me but i don't find any documentation or description of the functions that i can use and how to use it. The API documentation can be found at: https://sourceforge.net/apps/mediawiki/libwdi/index.php?title=Usage The main page for libwdi, which also references the page above is at: https://sourceforge.net/apps/mediawiki/libwdi/index.php?title=Main_Page You will understand of course that a library only documents the public API, and not the actual implementation of each function. Regards, /Pete |