WIN Management WMI Service (64 bit env on IA-64) doesn't load 32 bit dlls (don't know why)

Hi,

WIN Management WMI Service (64 bit env on IA-64) doesn’t seem to load 32 bit dlls (don’t know why).
We have confirmed this by removing load call for 32 bit dll, after removing this call, it works fine.
Need to find some solution as we can not have 64 bit version of that dll. Or do we have to some setting
to load it.
Please let us know your view on it.

Thanks and Regards
Deepak

Will this hotfix fix the problem. please let me know.
http://support.microsoft.com/default.aspx?scid=kb;en-us;870775
If yes, I will try to get it. Please confirm.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 9:39 AM
To: xxxxx@lists.osr.com
Subject: WIN Management WMI Service (64 bit env on IA-64) doesn’t load 32 bit dlls (don’t know why)

Hi,

WIN Management WMI Service (64 bit env on IA-64) doesn’t seem to load 32 bit dlls (don’t know why).
We have confirmed this by removing load call for 32 bit dll, after removing this call, it works fine.
Need to find some solution as we can not have 64 bit version of that dll. Or do we have to some setting
to load it.
Please let us know your view on it.

Thanks and Regards
Deepak

FYI , just in case anyone is interested. Got the answer from a reliable source.

a 32-bit process on 64-bit systems (wow64 process) can launch a 32-bit
(wow64) or 64-bit process
a 64-bit process can launch 64-bit or 32-bit (wow64 process).
a wow64 process can NOT load a 64-bit dll.
a 64-bit process can NOT load a 32-bit dll.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 6:26 PM
To: xxxxx@lists.osr.com
Subject: RE: WIN Management WMI Service (64 bit env on IA-64) doesn’t load 32 bit dlls (don’t know why)

Will this hotfix fix the problem. please let me know.
http://support.microsoft.com/default.aspx?scid=kb;en-us;870775
If yes, I will try to get it. Please confirm.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 9:39 AM
To: xxxxx@lists.osr.com
Subject: WIN Management WMI Service (64 bit env on IA-64) doesn’t load 32 bit dlls (don’t know why)

Hi,

WIN Management WMI Service (64 bit env on IA-64) doesn’t seem to load 32 bit dlls (don’t know why).
We have confirmed this by removing load call for 32 bit dll, after removing this call, it works fine.
Need to find some solution as we can not have 64 bit version of that dll. Or do we have to some setting
to load it.
Please let us know your view on it.

Thanks and Regards
Deepak

Yes, that’s correct, and completely reasonable.

How do you expect a 32-bit application to handle a call into a 64-bit DLL?
The only way to solve that is to have a thunking layer to translate the
call. To make the amount of thunking layers as small as possible, Microsoft
decided to only allow system calls to be thunked.

Even worse would of course be a 64-bit application using a 32-bit DLL? How
do you plan to “thunk” a 64-bit address that has any of the upper 32 bits
set? Of course, it would be technically possible to re-allocate it to a
32-bit valid address, but it’s a high penalty performance-wise, and it’s
not necessarily possible to do even if you decided that the performance
penaly is worth it, since the “below 32 bit” addresses may well be fully
occupied by other data already.

In IA-64 it’s even worse, because 32-bit code is somewhat different from
64-bit code in how the processor operates in the 32 vs 64-bit mode. The
transition is technically simpler in x86-64, since it’s essentially the
same processor architecture, but it’s still not trivial due to the problems
with addresses above the first 4GB.

To solve this, assuming you can’t re-compile your DLL to 64-bit (or get a
recompiled version from your supplier), and assuming your application needs
to be 64-bit, you will have to build a separate 32-bit application with
which you communicate through some interprocess communication (shared
memory or pipe for example). So your 64-bit app is doing all the 64-bit
stuff, then sending a “packet” to the 32-bit app to say “Process this
through the DLL”. It’s not too difficult to implement this, but it will of
course affect the performance some small amount.

By the way, the same thing applies to 16-bit applications and 32-bit DLL’s
and vide versa. It’s just that some 8-10 years ago, we weren’t so used to
having all sorts of DLL’s floating about that we could just link to, so it
wasn’t so much of a deal. But it’s for exactly the same reasons.


Mats

xxxxx@lists.osr.com wrote on 11/22/2004 09:31:04 AM:

FYI , just in case anyone is interested. Got the answer from a
reliable source.

a 32-bit process on 64-bit systems (wow64 process) can launch a 32-bit
(wow64) or 64-bit process
a 64-bit process can launch 64-bit or 32-bit (wow64 process).
a wow64 process can NOT load a 64-bit dll.
a 64-bit process can NOT load a 32-bit dll.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 6:26 PM
To: xxxxx@lists.osr.com
Subject: RE: WIN Management WMI Service (64 bit env on IA-64)
doesn’t load 32 bit dlls (don’t know why)

Will this hotfix fix the problem. please let me know.
http://support.microsoft.com/default.aspx?scid=kb;en-us;870775
If yes, I will try to get it. Please confirm.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 9:39 AM
To: xxxxx@lists.osr.com
Subject: WIN Management WMI Service (64 bit env on IA-64) doesn’t
load 32 bit dlls (don’t know why)

Hi,

WIN Management WMI Service (64 bit env on IA-64) doesn’t seem to
load 32 bit dlls (don’t know why).
We have confirmed this by removing load call for 32 bit dll, after
removing this call, it works fine.
Need to find some solution as we can not have 64 bit version of that
dll. Or do we have to some setting
to load it.
Please let us know your view on it.

Thanks and Regards
Deepak


Questions? First check the Kernel Driver FAQ at http://www.
osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

ForwardSourceID:NT00007A9E

Thanks and very well justified.

Thanks and Regards
Deepak


From: xxxxx@lists.osr.com on behalf of Mats PETERSSON
Sent: Mon 11/22/2004 3:42 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WIN Management WMI Service (64 bit env on IA-64) doesn’t load 32 bit dlls (don’t know why)

Yes, that’s correct, and completely reasonable.

How do you expect a 32-bit application to handle a call into a 64-bit DLL?
The only way to solve that is to have a thunking layer to translate the
call. To make the amount of thunking layers as small as possible, Microsoft
decided to only allow system calls to be thunked.

Even worse would of course be a 64-bit application using a 32-bit DLL? How
do you plan to “thunk” a 64-bit address that has any of the upper 32 bits
set? Of course, it would be technically possible to re-allocate it to a
32-bit valid address, but it’s a high penalty performance-wise, and it’s
not necessarily possible to do even if you decided that the performance
penaly is worth it, since the “below 32 bit” addresses may well be fully
occupied by other data already.

In IA-64 it’s even worse, because 32-bit code is somewhat different from
64-bit code in how the processor operates in the 32 vs 64-bit mode. The
transition is technically simpler in x86-64, since it’s essentially the
same processor architecture, but it’s still not trivial due to the problems
with addresses above the first 4GB.

To solve this, assuming you can’t re-compile your DLL to 64-bit (or get a
recompiled version from your supplier), and assuming your application needs
to be 64-bit, you will have to build a separate 32-bit application with
which you communicate through some interprocess communication (shared
memory or pipe for example). So your 64-bit app is doing all the 64-bit
stuff, then sending a “packet” to the 32-bit app to say “Process this
through the DLL”. It’s not too difficult to implement this, but it will of
course affect the performance some small amount.

By the way, the same thing applies to 16-bit applications and 32-bit DLL’s
and vide versa. It’s just that some 8-10 years ago, we weren’t so used to
having all sorts of DLL’s floating about that we could just link to, so it
wasn’t so much of a deal. But it’s for exactly the same reasons.


Mats

xxxxx@lists.osr.com wrote on 11/22/2004 09:31:04 AM:

FYI , just in case anyone is interested. Got the answer from a
reliable source.

a 32-bit process on 64-bit systems (wow64 process) can launch a 32-bit
(wow64) or 64-bit process
a 64-bit process can launch 64-bit or 32-bit (wow64 process).
a wow64 process can NOT load a 64-bit dll.
a 64-bit process can NOT load a 32-bit dll.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 6:26 PM
To: xxxxx@lists.osr.com
Subject: RE: WIN Management WMI Service (64 bit env on IA-64)
doesn’t load 32 bit dlls (don’t know why)

Will this hotfix fix the problem. please let me know.
http://support.microsoft.com/default.aspx?scid=kb;en-us;870775
If yes, I will try to get it. Please confirm.

Thanks and Regards
Deepak


From: Kotian, Deepak
Sent: Fri 11/19/2004 9:39 AM
To: xxxxx@lists.osr.com
Subject: WIN Management WMI Service (64 bit env on IA-64) doesn’t
load 32 bit dlls (don’t know why)

Hi,

WIN Management WMI Service (64 bit env on IA-64) doesn’t seem to
load 32 bit dlls (don’t know why).
We have confirmed this by removing load call for 32 bit dll, after
removing this call, it works fine.
Need to find some solution as we can not have 64 bit version of that
dll. Or do we have to some setting
to load it.
Please let us know your view on it.

Thanks and Regards
Deepak


Questions? First check the Kernel Driver FAQ at http://www.
osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

ForwardSourceID:NT00007A9E


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@patni.com
To unsubscribe send a blank email to xxxxx@lists.osr.com