I’ve just spent the last 5 days or so getting Logic ready for 64-bit Vista prime time. Here’s the deal: First of all Vista 64-bit needs a 64-bit driver. 2nd, that driver MUST be signed. In all prior versions of Windows, as well as 32-bit Vista, driver signing isn’t a requirement.
Signing, by the way is somewhat similar to what you go through to get an SSL certificate for your website. A Certificate Authority who is authorized to do MS driver signing makes sure your background is at least somewhat credible and then gives you a bunch of numbers – in exchange for a hefty pile of cash. Verisign, for example, wants $500.
Anyway I had been using Cypress’s handy driver (Cypress makes the USB chip in Logic) along with their .NET API for that (which is actually much messier to use than you might hope). Unfortunately that driver is neither 64-bit compliant or signed by Cypress. I checked into it and Cypress does apparently have a 64-bit driver in the works which they kindly shared with me, however it’s not signed and it wasn’t at all clear that the API I was using would work with it anyways. So I decided to go over to WinUSB.
WinUSB is a generic USB driver provided kindly by Microsoft that will work in XP and Vista and of course 64-bit Vista. It is signed out of the box. Anyway the API for it is very Win32-like and was a bit of an interesting code project. Especially after I got it working in 32-bit windows only to find that the same code utterly refused to work on 64-bit, due entirely, it turns out, to a large number of bad 32-bit-world assumptions in a lot of the .NET interop stuff I wrote. Anyway it went fairly well all-in-all and it was great practice for the Linux and OSX SDKs I’ll be putting together shortly.
One more thing about the signing: generally you need to have your driver’s ini file point to a .cab file which includes the hashes and signatures for all the drivers and the ini file itself – thus ensuring that the entire package hasn’t been altered since it was signed by the publisher. Of course I’m writing my own ini file so I was scared at first that I still hadn’t managed to get around the driver signing issue on 64-bit Vista – but luckily for me 64-bit Vista seems okay installing the drivers with the just embedded signatures – however it does unfortunately still pop up the unsigned driver install warning box. Eventually I’d love to be releasing signed code…
Oh, here’s a picture of my new Mac Mini OSX / 64-bi t Vista development computer. Very cool! This purchase is the ONLY splurge over here I should mention, the cash flow situation is still very tight.
Some more random pictures —