Help with respect to smbios

Antony_Sakkariaz at Dell.com Antony_Sakkariaz at Dell.com
Tue May 2 04:44:39 CDT 2006


Hello Michael,

Good morning.

I did tests to find out the behavior when security is initialized
incorrectly.

The CoCreateInstance() call goes through successfully; however, the
CreateInstanceEnum() call on IWbemServices fails with error
WBEM_E_ACCESS_DENIED.
So it is clear that the security must be initialized with the required
authentication levels.
Therefore I believe it is important to document this.

You are right, we need only one code change then.

Thanks,
Antony


> _____________________________________________ 
> From: 	Brown, Michael E  
> Sent:	Saturday, April 29, 2006 3:32 AM
> To:	Sakkariaz, Antony
> Cc:	Singh, Mutum; libsmbios-devel at lists.us.dell.com
> Subject:	RE: Help with respect to smbios
> 
> Ok, We can document the security initialization. I'll need to find a
> good spot for that.
> 
> Does CoCreateInstance() only fail if the security is initialized
> wrong? Does that mean that we only need one code change (don't raise
> exception if CoInitializaeSecurity() returns RPC_E_TOO_LATE)?
> --
> Michael
> 
> _____________________________________________ 
> From: 	Sakkariaz, Antony  
> Sent:	Friday, April 28, 2006 10:31 AM
> To:	Brown, Michael E
> Cc:	Singh, Mutum; libsmbios-devel at lists.us.dell.com
> Subject:	RE: Help with respect to smbios
> 
> Hello Michael,
> 
> Good morning.
> 
> I believe your first way is good.
> In this approach, libsmbios will call CoInitializeSecurity(), but if
> it fails (with RPC_E_TOO_LATE), then no exception is thrown.
> In this scenario, the application had initialized the security
> already.
> 
> However, I believe libsmbios needs the particular security settings
> for the subsequent COM calls (packet encryption, client impersonation,
> and secure reference count) to succeed.
> Therefore, if the application had initialized with default COM
> security, some of the subsequent calls (like CreateInstanceEnum())
> would fail.
> 
> This necessitates at least documenting somewhere, that if the client
> application that uses libsmbios makes use of COM before calling
> SmbiosWinWMIStrategy::getSmbiosTable(), it must initialize COM
> security with appropriate levels, during startup.
> 
> If the client application does not use COM, then there are no problems
> because CoInitializeSecurity() in libsmbios would succeed.
> 
> Kindly provide your thoughts, and please suggest how shall we proceed
> with respect to the changes in libsmbios.
> 
> Thanks,
> Antony
> 
> 
> _____________________________________________ 
> From: 	Brown, Michael E  
> Sent:	Thursday, April 27, 2006 9:32 PM
> To:	Sakkariaz, Antony
> Cc:	Singh, Mutum; 'libsmbios-devel at lists.us.dell.com'
> Subject:	RE: Help with respect to smbios
> 
> Antony,
> 	Thanks for digging into this so thoroughly. What would be really
> good is if we could get a patch into base libsmbios so that anybody
> can disable this with an API call rather than having to patch the
> source. There are two ways I can think of to do this.
> 
> 	The best way would be automatic fallback. First thing would be
> to remove the exception for when security initialization fails. Next,
> can you suggest a way we can automatically recover from the instance
> where CoCreateInstance() fails?
> 
> 	Another way to do this would be to pass in a parameter to the
> factory function saying not to initialize WMI. This requires people to
> know they are going to use WMI, though, so I don't like it as much.
> --
> Michael
> 
> 	_____________________________________________ 
> 	From: 	Sakkariaz, Antony  
> 	Sent:	Thursday, April 27, 2006 10:44 AM
> 	To:	Brown, Michael E
> 	Cc:	Singh, Mutum
> 	Subject:	RE: Help with respect to smbios
> 
> 	Hi,
> 
> 	Good morning!
> 
> 	After many tests, I found the reason:
> 	CoInitializeSecurity() call in GetWMISMBIOSEntry() fails
> (SmbiosStrategy_Windows.cpp), and throws exception.
> 	The error code is 80010119, which is RPC_E_TOO_LATE.
> 	This error occurs when already someone else had initialized
> security.
> 
> 	In PowerEdge Diagnostics, many components including vendor
> provided ones use WMI.
> 	So it is quite possible that they initialize security before we
> reach this point.
> 
> 	Commenting it out did not work either, because the call
> IWbemServices::CreateInstanceEnum fails.
> 
> 	Solution:
> 	Initialize COM security with the necessary flags at the
> beginning of the application.
> 	After I did this, AND commented out the exception throw
> statement in GetWMISMBIOSEntry(), the problem is solved.
> 
> 	Thanks,
> 	Antony
> 
> 
> 	_____________________________________________ 
> 	From: 	Sakkariaz, Antony  
> 	Sent:	Wednesday, April 26, 2006 8:08 PM
> 	To:	Brown, Michael E
> 	Cc:	Singh, Mutum
> 	Subject:	RE: Help with respect to smbios
> 
> 	This is on Windows.
> 	Yes I've logged in as administrator.
> 
> 	Are there any changes in smbios for 9G platforms?
> 
> 
> 	_____________________________________________ 
> 	From: 	Brown, Michael E  
> 	Sent:	Wednesday, April 26, 2006 8:04 PM
> 	To:	Sakkariaz, Antony
> 	Cc:	Singh, Mutum
> 	Subject:	RE: Help with respect to smbios
> 
> 	Are you running on windows or linux? Are you running with
> administrative privleges?
> 
> 		_____________________________________________ 
> 		From: 	Sakkariaz, Antony  
> 		Sent:	Wednesday, April 26, 2006 9:29 AM
> 		To:	Brown, Michael E
> 		Cc:	Singh, Mutum
> 		Subject:	Help with respect to smbios
> 
> 		Hi,
> 
> 		Good morning.
> 
> 		I am from PowerEdge Diagnostics team, and handle memory
> diagnostics.
> 		Memory diagnostics uses smbios interface to get
> information about the memory DIMMs.
> 
> 		When calling the getSingleton() method of SmbiosFactory,
> exception is thrown stating "Could not instantiate SMBIOS table."
> 		As the result, memory DIMM status could not be obtained.
> 
> 		Could you please let me know what might be the reason?
> 		If you need any information like logs, please let me
> know.
> 
> 		Interestingly, this problem occurs only in the GUI mode
> of the application, and not in CLI mode (PowerEdge Diagnostics
> supports both GUI and CLI modes of operation).
> 
> 		PowerEdge Diagnostics version used: 2.7
> 		Platform: PE2900 (Montreal)
> 		SMBIOS version: 0.10.6
> 
> 		Many thanks in advance for your help!
> 
> 		Regards,
> 		Antony
> 		 << File: version.mk >> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.us.dell.com/pipermail/libsmbios-devel/attachments/20060502/bf2f5139/attachment-0001.htm 


More information about the libsmbios-devel mailing list