locked
32 bit credential provider on 64 bit platform RRS feed

  • Question

  • Can a credential provider built as a 32 bit app execute without modification on a windows vista/7.0 64 bit platform?
    Monday, August 31, 2009 4:21 PM

Answers

  • Hi Fisnik

    I think that you hit "paydirt!"  In the second message from the above link, Eric Perlin [MSFT] states "For logon, you need a native (i.e. 64-bit) provider.  Logonui.exe (the host for the credential providers) is native. It can only load native dlls."

    Thereby my original question "Can a credential provider built as a 32 bit app execute without modification on a windows vista/7.0 64 bit platform?" has been resolved.  The answer is simply: "NO!"

    Many thanks to you and Mounir for your help!

    dmm3

    • Marked as answer by dmm3 Friday, October 30, 2009 12:18 PM
    Thursday, October 29, 2009 3:02 PM

All replies

  • Hi,

    Yes/No, it depends, if Windows Vista is x64 then, 
    a program that is (x86 (32-bits)) will be  saved on the
    following path (only if install) = C:\Program Files (x86)\. 

    Anyway, you can run x86 on x64, since the Central Process Unit (CPU)
    is backward compatible with x86.

    Have a nice day...

    Best regards,
    Fisnik
    Coder24.com
    • Proposed as answer by Fisnik Hasani Saturday, October 10, 2009 8:11 AM
    Saturday, October 3, 2009 7:39 AM
  • Hello dmm3:

    Is this issue solved? How is the situation on your side?
    Please provide some information, thanks!

    Have a nice day...

    Best regards,
    Fisnik
    Coder24.com
    Friday, October 9, 2009 7:52 PM
  • Hi Fisnik

    My 32bit credential provider installed OK on the 64bit platform.  That's the last of the good news.  It did not execute after rebooting the Vista-64 system.  My thinking at this point is that the credential provider build environment must match the target system.

    Thanks
    dmm3

    Tuesday, October 13, 2009 2:58 PM
  • Hi again:

    I am not sure, if it really must match the TARGET SYSTEM.
    However, I added some good and helpful links below:

    Credential Management with the .NET Framework 2.0
    http://msdn.microsoft.com/en-us/library/aa480470.aspx
    Create Custom Login Experiences With Credential Providers For Windows Vista
    http://msdn.microsoft.com/en-us/magazine/cc163489.aspx#edupdate
    Implementing Protected Configuration With Windows Apps
    http://www.codeproject.com/KB/security/ProtectedConfigWinApps.aspx

    I hope this helps...

    Have a nice day...

    Best regards,
    Fisnik

    Coder24.com
    Tuesday, October 13, 2009 4:47 PM
  • Hi Fisnik

    Unfortunately the aforementioned links do not address the issue at hand, namely "Can a credential provider built as a 32 bit app execute without modification on a windows vista/7.0 64 bit platform?"

    Thanks anyhow
    dmm3
    Thursday, October 15, 2009 8:01 PM
  • Hi dmm3:

    Well, as far as I know, you can run x86 (32-bit) program
    on x64 (64-bit) Operating System (OS).

    I think you can: I must work since 64-bit CPUs are backward compatible with x86.

    Else, see if Microsofts own Support Page has any good information!

    I hope this helps...

    Best regards,
    Fisnik

    Coder24.com
    Friday, October 16, 2009 6:08 AM
  • Hello dmm3:

    How is the situation on your side?
    Is this thread solved or NOT?

    Please tell me!

    Have a nice day...

    Best regards,
    Fisnik
    Coder24.com
    Saturday, October 24, 2009 12:38 PM
  • Hi all,

    To Fisnik : I think you are missing the point of the question posed by dmm3. Credential Provider is an interactive authentication plug-in model for Windows that replaced the old GINA interface. Credential Providers are usually implemented as dlls . So, when dmm3 asks about the credential provider execution, he asks if his credential provider will be called by the LogonUI process that handles credential providers under Vista and Windows 7.

    To dmm3 : Since LogonUI will access the credential provider through the CLSID that have been put in the registry, you must ensure that this CLSID is written both in the 64-bit registry and the 32-bit registry. Also, your credential provider's COM interface should be registered in the 64-bit registry under [HKEY_CLASSES_ROOT\CLSID ]. Did you do this?

    Cheers,
    --
    Mounir IDRASI
    IDRIX
    http://www.idrix.fr
    Sunday, October 25, 2009 2:29 PM
  • Hi Mounir

    I've added my comments to your reply:

    Since LogonUI will access the credential provider through the CLSID that have been put in the registry, you must ensure that this CLSID is written both in the 64-bit registry and the 32-bit registry.
    dmm3: As far as I can tell, there is only one Registry.  There are some new folders that apply to 32 bit applications (WOW) but these are not a factor in registering a credential provider. 

    Also, your credential provider's COM interface should be registered in the 64-bit registry under [HKEY_CLASSES_ROOT\CLSID ]. Did you do this?
    dmm3: As part of the sample credential provider code from microsoft, there are boilerplate register/unregister "reg" files which install/uninstall the credential provider in the appropriate locations in the Registry.  None of these locations are either 32 or 64 bit specific.

    My question remains the same: Can a credential provider built as a 32 bit app execute without modification on a windows vista/7.0 64 bit platform?  I am assuming that the answer must be "no" since it appears that no one has yet accomplished this feat.

    Thanks
    dmm3



    Monday, October 26, 2009 3:51 PM
  • Hi dmm3,

    Concerning the registry, you are mistaken : on a 64-bit Windows machine, there are two independent registry trees, one for 32-bit applications and one for 64-bit applications. That's why there are two copies of regedit.exe : one on C:\Windows\SysWOW64\regedit.exe for 32-bit registry tree and one in c:\Windows\regedit.exe for 64-bit registry tree. Note that you can not launch both on the same time.

    To convince yourself, launch the one on SysWOW64 and create a dummy key somewhere. Then close it and launch the one on c:\Windows: you will notice that the key is not there!! WIN32 API will redirect automatically an application to the right registry tree depending on it type (32-bit or 64-bit).

    I think this explains the problems you are having since you never interact with the 64-bit registry and LogonUI is a 64-bit app.

    Cheers,
    --
    Mounir IDRASSI
    IDRIX
    http://www.idrix.fr
    Monday, October 26, 2009 4:18 PM
  • Hi Mounir

    Thanks for the correction.  However I am still unclear whether or not a 32 bit credential provider will execute on a 64 bit vista platform.  My concern is as follows:  On a 64 bit vista platform, my understanding is that a 32 bit application cannot execute in the program space of a 64 bit application and vice versa.  As you have pointed out, a credential provider is a DLL which executes in the program space of its container.  In this case, LogonUI is the container but is a 64 bit application while my credential provider is a 32 bit application.  It would seem that this would make them incompatible with each other.

    What do you think?

    Thanks
    dmm3 
    Wednesday, October 28, 2009 12:32 PM
  • Hi dmm3:

    Yes, you should be able to. The 64-bit version of Windows Vista can run 32-bit applications with the help of the
    WOW64 emulatot. 

    Also: Yes, Mounir is correct, it's about a plug-in for LogonUI (I was thinking of the credential provider and the manager in Windows, sorry).

    To get a faster and better answer send the question to: credprov@microsoft.com

    I hope this helps...

    Have a nice day...

    Best regards,
    Fisnik


    Coder24.com
    Wednesday, October 28, 2009 12:57 PM
  • hi fisnik

    my comments below:

    fisnik: Yes, you should be able to. The 64-bit version of Windows Vista can run 32-bit applications with the help of the
    WOW64 emulatot
    dmm3: this is not the issue -- we already know this.  the question is whether a 32 bit dll such as a credential provider can execute in the process space of a 64 bit application on a vista 64 bit platform?

    fisnik: To get a faster and better answer send the question to: credprov@microsoft.com
    dmm3: my experience with this email address is that it serves as a "black hole."

    thanks anyhow
    dmm3
    Wednesday, October 28, 2009 4:21 PM
  • Hi dmm3:

    Well I do not know what to say! Except that the given e-mail might answer your question.
    credprov = means Credential Provider.

    I've got the e-mail from one of Microsoft's compatibility guidelines [A MS online freeware document].

    Have a nice day...

    Best regards,
    Fisnik


    Coder24.com
    Wednesday, October 28, 2009 7:56 PM
    • Proposed as answer by Fisnik Hasani Thursday, October 29, 2009 7:28 PM
    Thursday, October 29, 2009 8:41 AM
  • Hi Fisnik

    I think that you hit "paydirt!"  In the second message from the above link, Eric Perlin [MSFT] states "For logon, you need a native (i.e. 64-bit) provider.  Logonui.exe (the host for the credential providers) is native. It can only load native dlls."

    Thereby my original question "Can a credential provider built as a 32 bit app execute without modification on a windows vista/7.0 64 bit platform?" has been resolved.  The answer is simply: "NO!"

    Many thanks to you and Mounir for your help!

    dmm3

    • Marked as answer by dmm3 Friday, October 30, 2009 12:18 PM
    Thursday, October 29, 2009 3:02 PM
  • Hi Fisnik

    I think that you hit "paydirt!" 

    dmm3


    Hello dmm3:

    "I think that you hit "paydirt!"  " - I am sorry if I did something bad, note, I was thinking in different forms,
    like: CPU forms, of types: like, x86 and x64.

    Anyways, I am glad that we could confirm this.

    Have a nice day...

    Please mark something as answer so we can close this thread!

    Best regards,
    Fisnik


    Coder24.com
    Thursday, October 29, 2009 7:27 PM