Posts filed under ‘Vista’
Upgrading to MIL-Lite 9
More about the MIL-Lite upgrade, I have had several problems. I should start by mentioning that we require our applications to work on MIL-versions back to 6, in order to be able to support the excisting customer base:
- Matrox have strengthen the typing on all MxxxInquire functions. Probably a good idea, but it means that all previous uses of the functions, for example MBufInquire is not supported anymore and have to be upgraded. Since we are dealing with pointers here, pointers to stuff of different lengths, this is not an easy upgrade. My solution was to use #if M_MIL_CURRENT_INT_VERSION >= 0×0900 in those places where I was unsure about whether further use of the pointers required a specific width.
- I am unable to retrieve previous hanlder ptr and user handler ptr:
MappInquire(M_CURRENT_ERROR_HANDLER_PTR,&m_HandlerPtr);
The type of the third parameter is not supported anymore (MAPPHOOKFCTPTR)
- The most serious problem is that Matrox has ceased support for the Mvga functions. I used them for getting a pointer to a DIB structure, in order to draw the dib to a printer device context. I canot find a real alternative to these functions
- And, not related to code, I am not able to debug the application as I constantly get an error message about missing license. However I have a Matrox Meteor 1394 card installed, with a Sony 1394b camera. I am not sure why this does not work – perhaps the Meteor is not supported in version 9, or there is still problems with 1394b speeds. Anyway I will order a USB license key.
- The Matrox developer forum is a closed one. Whenever I try to enter, typically every sixth month, I am not able to log on. Of course I have a valid support agreement and all that, but I do not remember my username or my password. I do remember the email address I am registered with, but it seems not to be enough. So I am not able to see any posts. I don’t understand why the access needs to be that restricted.
So at the moment, I am not able to get Mil-Lite 9 to work on Vista – or any version of MIL to work on Vista, I am not able to get help through the forums, and I wonder whether I rather should switch to another vendor!
/Maxmem support in Windows Vista
High-performance hardware from time to time needs direct access to memory in order work properly. That is the case with the excellent Matrox Imaging line of framegrabbers. In particular, I am using the Meteor/2 family of framegrabbers (a framegrabber is used for capturing images from a camera, usually for industrial, medical, or surveillance purposes). The driver and library that comes with these framegrabbers, Matrox Imaging Library, ensures during installation that the framegrabber has direct access to memory by adding a switch to the Windows XP’s (or NT or previous versions of windows) boot.ini file: /MAXMEM=xxxx where xxxx is the upper limit of memory (in MB) that windows will use. For example
multi(0)disk(0)rdisk(0)partition(1)\windows=”Microsoft Windows” /MAXMEM=2040
This lines reserves 8 MB (of my computers 2048 MB memory) for direct use by the framegrabber.
However, with Windows Vista this possibility changed. It does not use the boot.ini file any more. Instead, one has to use the Boot Configuration Data Editor or bcdedit. This utility can be run from the command promt (but remember to run the command prompt “As administrator” – by rightclicking and selecting “Run as administrator”).
BCDedit is explained here, at Microsoft Technet. /Maxmem is replaced by the option TRUNCATEMEMORY, and in order to get the same effect as the example above try from the command-line prompt:
bcdedit /set TRUNCATEMEMORY 2139095040
As can be seen, the limit 2040MB now needs to be specified in bytes.
After a reset, going into Control Panel – System, you can see that it has worked. In order to remove the limit, try
bcdedit /deletevalue TRUNCATEMEMORY
There should probably be a warning here: “Don’t try this at home”. Or at least don’t try it if you don’t know what you are doing. Of course, by the level this is documented by Microsoft, no one knows even half of what they are doing, so …
To the end of the story, I have not managed (yet) to get Matrox Imaging Library 7.5 to run properly on Windows Vista. On the other hand, as this blog explains, I managed to reserve memory for direct use by the hardware.