[vbox-dev] HGCM calls slow on multicore guest (linux)

Höhn Thomas Hoehn.Thomas at heidenhain.de
Fri Jun 12 10:44:37 GMT 2015


Hi Draculax,

the "separate story" about Dll signing for ExtPacks on Windows host is actually worth its own thread.
It took me a while to figure out how to get signed Dlls for the HGCM service loaded.
Here are some hints:

- Since VBox 4.3.14 all Dlls must be signed to get loaded
- Before signing the INTEGRITYCHECK flag must be set in the Dll header, e.g. with editbin
(Visual Studio 2012, 2013 has /INTEGRITYCHECK linker option, for VS 2010 use editbin,
see: https://msdn.microsoft.com/en-us/library/d25ddyfc.aspx)
- Signed Dlls work since VBox >= 4.3.16, but: VBox 4.3.14 doesn't work for me - maybe a bug
- Dlls have to be cross signed with the Microsoft Code Verification Root CA
- Other Dlls which are loaded in the host service (in VBoxHGCMSvcLoad or svcCall callback fcn's)
with LoadLibrary also have to be signed (but seems no INTEGRITYCHECK flag needed,
if you still have problems to load the Dll may have to be installed with owner "SYSTEM" or "TrustedInstaller", see:
http://www.askvg.com/guide-how-to-restore-trustedinstaller-as-default-owner-of-a-file-or-folder-in-windows/)

After signing your Dll there should be a Cross Certificate Chain "Microsoft Code Verification Root" you can check with:

===8< ===

signtool verify /v /kp MyHostService.dll  

Cross Certificate Chain:
    Issued to: Microsoft Code Verification Root
    Issued by: Microsoft Code Verification Root
    Expires:   Sat Nov 01 14:54:03 2025
    SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3

        Issued to: Class 3 Public Primary Certification Authority
        Issued by: Microsoft Code Verification Root
        Expires:   Mon May 23 18:11:29 2016
        SHA1 hash: 58455389CF1D0CD6A08E3CE216F65ADFF7A86408

            Issued to: VeriSign Class 3 Public Primary Certification Authority - G5
            Issued by: Class 3 Public Primary Certification Authority
            Expires:   Mon Nov 08 00:59:59 2021
            SHA1 hash: 32F30882622B87CF8856C63DB873DF0853B4DD27

                Issued to: VeriSign Class 3 Code Signing 2010 CA
                Issued by: VeriSign Class 3 Public Primary Certification Authority - G5
                Expires:   Sat Feb 08 00:59:59 2020
                SHA1 hash: 495847A93187CFB8C71F840CB7B41497AD95C64F

                    Issued to: Dr. JOHANNES HEIDENHAIN GmbH
                    Issued by: VeriSign Class 3 Code Signing 2010 CA
                    Expires:   Tue Nov 01 00:59:59 2016
                    SHA1 hash: 36CA1F4339EC6B2F4CDC9E594C904E8625862485

Successfully verified: MyHostService.dll

Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

===8< ===

Additional hints:

- For your HGCM host service to get loaded by the Extension Pack Manager (>=VBox 4.3.0) you have build a
host service Dll (e.g. MyHostService.dll) and an ExtensionPack main module Dll (e.g. VBoxMyMain.dll)
=> both must be signed

- In the Extension Pack  (which is a tar-gzip) an ExtPack.manifest file must exist,
listing all the Files (incl. the Dlls) of the ExtPack with their hash (I use MD5),
Files for ExtPack are: ExtPack.xml, ExtPack-license.txt, ExtPack-license.html, ExtPack.signature
win.x86/MyHostService.dll, win.x86/VBoxMyMain.dll, win.amd64/MyHostService.dll, win.amd64/VBoxMyMain.dll
A manifest entry looks like:

MD5 (win.x86/MyHostService.dll) = 7e49c07cfdea27e16407e57f8a3f7666
SIZE (win.x86/ MyHostService.dll) = 56600

Regards,
Thomas

From: DRACULAX <DRACULAX at ...>
Subject: 答复: HGCM calls slow on multicore guest (linux)
Newsgroups: gmane.comp.emulators.virtualbox.devel
Date: 2015-06-10 03:04:36 GMT (2 days, 6 hours and 9 minutes ago)

I meet the problem too.
And I found the problem will go worse if I run more than one guest on my windows host. That will cause several
guest to crash.
By the way, I am very interested in your " separate story" that make your own hgcm model running on VBox > 4.3.14.
What is your solution? 

------------------------------------------------------------------------------------------------------
Registergericht: Traunstein / Registry Court: HRB 275 - Sitz / Head Office: Traunreut
Aufsichtsratsvorsitzender / Chairman of Supervisory Board: Rainer Burkhard
Geschäftsführung / Management Board: Thomas Sesselmann (Vorsitzender / Chairman),
Michael Grimm, Hubert Ermer

E-Mail Haftungsausschluss / E-Mail Disclaimer: http://www.heidenhain.de/disclaimer


More information about the vbox-dev mailing list