Driver INF File: Identifying supported OS Architecture from driver inf file - driver

I am trying to parse INF file of drivers in my code to identify the OS architecture supported by them. For this I'm referring to the "INF MANUFACTURER SECTION" link:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff547454(v=vs.85).aspx
I have an Driver INF File which has a manufacturer section as:
[Manufacturer]
%HSD%=HSD,NTAMD64
according to the manufacturer section documentation given in the above link, the INF Model Section name must be decorated with the supported architecture and hence, "NTAMD64" suggests that the Driver is valid for a 64-bit Windows Operating System.
But what does "HSD" suggest?
Which operating system does it refer to? How to indentify this?

HSD is a section identifier, it has nothing to do with a target OS. NTAMD64 indicates the OS.

Related

Modify moufiltr.inf from the Windows Driver Samples to work for USB mice

https://github.com/microsoft/Windows-driver-samples/tree/master/input/moufiltr
The given .inx only prepares the installation files for PS/2 mice - how do I modify it to work with USB-mice?
I followed the links in the answer and the comment here, but I have no clue how to add HID_DEVICE_SYSTEM_MOUSE as a Hardware ID.

Determining supported host target features without a compiler

In LLVM-based compilers like rustc and clang, we can select a target cpu or a list of supported target features, like avx.
I can list the supported target CPUs with e.g. rustc -C target-cpu=help, or clang -print-supported-cpus.
One of the special values is native, which selects the current CPU that clang or rustc is running on. But now I want to know the correct value to use for a different machine, where no compiler is installed, and cannot be installed for security reasons. How can I know what target-cpu=native would evaluate to on that machine?
I can look at the list of supported CPUs, and the codename of my CPU as published by the vendor, but I don’t trust that this works in all cases, I would much rather confirm this with a runtime check.
Concretely:
Is there a reliable way to convert the output of e.g. lscpu into an LLVM target CPU name? Or if we can’t have the CPU name itself, how do the “flags” that lscpu lists translate to LLVM target-feature names?
Alternatively, does there exist a tool, which is not itself a compiler, that would print the LLVM target CPU for the host it’s running on?

Error using datastage to connect to informix database

when I use datastage to connect to informix database, there comes an error:
main_program: PATH search failure:
main_program: Error loading "orchinformix": Could not load "orchinformix": libifasf.so: wrong ELF class: ELFCLASS32.
main_program: Could not locate operator definition, wrapper, or Unix command for "infxread"; please check that all needed libraries are preloaded, and check the PATH for the wrappers
What may cause this problem? Wait for help. Thanks a lot!
The key part of the error messages is:
libifasf.so: wrong ELF class: ELFCLASS32.
You're running a 64-bit system (or, at least, 64-bit executables), but you have a 32-bit version of the Informix ClientSDK or Informix Connect libraries installed, and your orchinformix code is trying to load the 32-bit libifasf.so library, and failing.
To fix, you need to find out which libifasf.so your code is trying to use, and you need to find out whether there's a 64-bit version installed somewhere on the machine. If there's no 64-bit version, then you'll need to install it, of course.
You then need to adjust things so that the correct library is loaded rather than the incorrect one. It isn't clear what that'll take. Look carefully at the configuration and installation instructions.
Normally, libifasf.so and other Informix libraries are installed in either $INFORMIXDIR/lib or a sub-directory of that (e.g. $INFORMIXDIR/lib/esql or $INFORMIXDIR/lib/client). You may need to set the INFORMIXDIR environment variable to where the 64-bit software is installed, or you may have to play with other environment variables (LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, SHLIB_PATH, etc), or you may have to tweak a configuration file (/etc/ld.so.conf or similar).
If this isn't sufficient help, please identify the platform (o/s and version) that you're using, and also where the Informix database server is running (is it the same machine or a different machine), and the versions of Informix database and connectivity that are in use. In this context, it is important that 12.10.FC4 and 12.10.UC4 are slightly different; the F indicates 64-bit and the U 32-bit Unix (and W would indicate 32-bit Windows). Please include all the version number information for the products.

Printer Driver Development Using Windows DDK error

I'm a software developer a printer manufacturer. Recently asked a driver. So i start digging for tutorials, samples, articles.
First thing i do, i downloaded the Windows Driver Kit 7600.16385.1. I install it, build it with some sample drivers (For example, generic/text only). I changed the manufacturer section in the inf file and worked fine. But i asked to do more specific driver, getting data from any application that can print and send it to our printer.
At this point i do some extra digging, installing Visual Studio 2013 and winddk 8.1. I try the v4 printer driver sample out of the box. I managed to build it (Inf to cat acting strange, so i disabled it project properities). Then i try the installing a printer with new driver. Driver software wasn't installed at all. I get through inf syntax, found some erros and fix it the problem. After then I keep getting 0x00000002 error. I managed to solve problem, then i getting 0x0000003 error.
So, i write down a inf intaller c# project, managed to install driver. Driver was showing up in printer drivers section, but i try the install a new printer, installation keep getting failed with error 0x0000003. I do some search about error, i found it's path_not_found error. I check my inf file, doing some syntax checking. I put some effort there, but i keep getting error 0x0000003.
What i do for solving the problem?
In forums, people say it's a priviledge problem causing this error in windows credentials. I setup new admin account and install the driver. But when try the setup a printer error is same.
I investigate windows logs under windows folder: setupapi.dev.log and setupact.log. In this section i find 0x0000002 errors, but not found 0x000003 errors. This is not helpful for me.
Some people in the forums says may be pre installed drivers and printer causing problems. I uninstall the drivers and printers under system32 driverstore. Also uninstall the printer sevices and printers section under control panel. Result is same.
I found channel9, it's microsoft development network some sort of. I found some video tutorials and slides about development. I watched HW-328T, HW-238T, HW-979P, HW-981P, HW-903T, HW-322T. This videos gave me some insight, but nothing more.
So i keep digging problem, using eventwiever tool by windows. Found HRESULT 0x80070003 error. It's a printer spooler error log says. I restart the spooler, error continued, i restart service and restart the computer, error continues.
I try the old entries of my driver Registry Editor. Result is same. I managed to get admin privilidges of windows folder, it didn't make difference.
I try the install new printer using command line with admin privlidges, result is same.
Numerous attemps for installing on 64 bit and 32 bit windows.
Also i try using GPD, PPD types.
My Code Samples.
INF File
[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=Ali.cat
ClassVer=4.0
DriverVer=08/01/2012,1.0.0.0
[DestinationDirs]
DefaultDestDir = 66000
[Manufacturer]
%ManufacturerName%=Ali,NTia64,NTamd64
[Ali]
"Ali V1" = Ali.GPD
[Ali.NTia64]
"Ali V1" = Ali.GPD
[Ali.NTamd64]
"Ali V1" = Ali.GPD
[SourceDisksNames.amd64]
1= %DiskName%,,,
[SourceDisksFiles.amd64]
Ali.gpd = 1
[SourceDisksNames.ia64]
1= %DiskName%,,,
[SourceDisksFiles.ia64]
Ali.gpd = 1
[Strings]
ManufacturerName="Ali"
DiskName="Ali Installation Disk"
My C# Function Code for installing inf files
if (SetupCopyOEMInf(inf_path, "", 2, 0x0000400, null, 0, 0, null))
Thanks in advance.
Note: if needed, i can post gpd file also.
It would appear that you do not have a copy section in the INF file that should look something like:
[Ali.GPD]
CopyFiles=#Ali.gpd
The Inf file requires this to know what files to copy.
Here is the relevant MSDN doc on this topic.
Hope this helps.
First of all, you have to consider your processor architecture. Absolutely your driver will not work on on x86 or ARM based architecture since related sections did not included in your sample .inf file.
Additionally there is no Install section (Copy File directive) in your .inf file while as it is mandatory to include (specially if you intended to use INF based setup APIs). For creating a minimum working .inf file see here.
Finally, how do you install the printer driver? Do you using a Driver Package? if yes, how you sign it while you mentioned that the inf2cat process bypassed in your work? (may by you are developing in "Disabled Driver Signature Enforcement" mode!). otherwise, without any .gpd or .ppt file how you are going to install a printer? What do you expect from your printer?
By adding some code snippet, may be people could help more.

How can I copy boot.bin to SD card zynq board?

I have a xilinx zynq board. I download file boot.bin and plug in the required cables. But i dont know how copy file boot.bin to SD card. I must use of ISE software?
Setting up the SD card to boot on a Zynq board is very straightforward and doesn't require putting the bootloader in the MBR or other fancy filesystem tricks. The ISE software is not required once you have the boot.bin file.
As other answers have said, you need to put the SD card into an SD card reader, and connect it to your computer.
You need the SD card formatted as a FAT partition (Windows would do this by default).
Simply copy the boot.bin to the card, as a normal file.
See http://www.wiki.xilinx.com/Prepare+Boot+Medium for detailed steps to do this in Linux.
If you're booting up an OS like Linux, you'll need extra files there too. See http://www.wiki.xilinx.com/Prepare+boot+image (the FSBL and u-boot are included in the boot.bin that you have).
Can't you just use an SD card reader? Laptops usually have them built in, or they make USB-to-SD converters that are cheap.
If you want to copy the boot.bin file to the SD card, you should have a card reader of some sort (They are usually integrated in recent laptops).
However, if you want a fast solution to check your application functionality other than JTag, and couldn't find an SD reader, you can always use your mcs file and boot from QSPI.
You can refer to ZedBoard Configuration and Booting Guide listed in this link
http://www.zedboard.org/support/design/1521/11

Resources