08-08-2012 07:49 AM
I am using NI488.2 SW out of a virtual environment for a gpib connection. It is working. But after using I get a blue screen during the shut down process. The machine is starting again and then I can shut down without any problems.
I’ve tried different versions of NI488.2 (including the newest package 3.02) with always the same behavior.
Anyone an idea how I can prevent the blue screen when I want to shut down the machine?
Solved! Go to Solution.
08-08-2012 11:37 PM
the host PC (the OS running on the metal box) bluescreens, or the client (virtual) box BSOD's?
08-09-2012 02:20 AM
The host PC BSOD.
I am using a virtualized application, so no complete virtual machine. If I run a virtualized application without the NI-488.2 driver (in the virtualized environment) - no BSOD problem during shut down of the host, but in this case I get no connection from the virtualized application to the gpib interface. I also need the NI-488.2 driver in the "virtual environment" of the application to get the connection to the gpib interface. But only then I get the BSOD during shut down of the host. So the problem comes from the virtualized NI-488.2 driver.
By the way, the host has also the NI-488.2 driver installed and it must be the same driver version - otherwise the connection to the gpib interface is not working and the error message is: file not found: Gpib-32.dll. But this is not relevant for the BSOD problem as I always use the same driver version (in the host and virtualized environment).
08-09-2012 08:34 AM
Hi EIGamal,
I´m afraid you cannot virtualize any of the NI-Device Drivers. That´s not supported currently.
regards
Marco Brauner NIG
08-09-2012 11:37 AM
What do you mean by "virtualized application, so no complete virtual machine"?
Which NI GPIB hardware are you trying to use in your virtual machine?
Is the GPIB interface working inside your virtual machine, it just causes the shutdown problem?
08-10-2012 01:38 AM
I am using a 32-bit application on 64-bit Windows. The application needs a 32-bit virtual environment (= sandbox). No problems so far.
The challenge is that the application is using a gpib usb interface (or a gpib PCI-interface, doesn't matter - no difference in the behavior). To achieve this I need the gpib drivers on 64-bit Windows, but this alone is not sufficient - and no problems so far with BSODs. To get the connection to the gpib interface I need also the gpib driver (and exactly the same version as on 64-bit) in the sandbox of the application.
In this setup the application is running well with connection to the gpib interface, except that I always get the BSODs during shutdown of the 64-bit Windows. Shutdown of the 32-bit sandbox is not necessary and not possible, as the application in the sandbox is used as a usual 64-bit application and completly behaves like that.
The BSODs during shutdown only occur after the application has been executed. No application execution -> no BSODs.
08-10-2012 02:15 AM
Additional info:
The BSOD is caused by a page fault in a non-paged area. This page fault comes from the execution of the “virtual NI-drivers”, as the BSOD only occurs after the execution of the application. Although the application has been terminated, there must be some remaining pages somewhere in the hosting 64bit-Windows environment (may be in the NI-driver area of Windows), which cannot any longer be mapped correctly. But why must Windows during the shut down process take care about these pages?
08-11-2012 04:43 AM
08-13-2012 01:56 AM
I used ThinApp (VMware) to generate the virtualized application on WindowsXP Service Pack 3, 32-bit. ThinApp captures all drivers, dll's, etc. to generate an application package that is running on 64-bit Windows7 (or some other Windows machine). The application package does not need to be installed on the Windows7 machine as it has its "own machine integrated" (= sandbox).
For an application that does not need any other system ressources from Windows7 it is a perfect solution. But in this case we need the gpib bus from the Windows7 machine. The connection between the virtualized application and the gpib bus could be achieved via the NI-driver in the hosting machine and additionally within the virtualized application package (as described above).
08-13-2012 10:15 AM
ThinApp is new to me, that seems to be an interested alternative to a full virtual machine. From what I have read about it, NI-488.2 should be treating your virtualized app just like any other process. One caution with the approach ThinApp uses is that if you don't have the same version of NI-488.2 DLLs on the sandbox and the host, you may end up using mismatched versions of the DLLs and driver. These are typically always installed together, and require an exact version match. Once you deploy your application in this sandbox, you may never be able to upgrade the version of NI-488.2 on the host, without potentially causing problems.
Some questions that may help identify the problem:
How Can I Create a Kernel Memory Dump When Windows Crashes
The instructions in the article are slightly dated. If you are not familiar with how to reach the advanced system settings on Windows 7, the easiest way is to type 'view advanced' in the Start Menu search bar, then select 'View Advanced System Settings'.
-Jason Smith