mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
5.6 KiB
180 lines
5.6 KiB
Whistler
|
|
========
|
|
|
|
<HIGH>
|
|
|
|
1. SWbemPropertyEx::AddValues and DeleteValues - these are assuming that
|
|
construction of the SWbemProperty object from SWbemPropertySet::Item
|
|
is "cheap" and does not require retrieval of the property value. This in
|
|
turn assumes that the IWbemClassObject::Get call does not force the
|
|
UMI provider to get the value when the VARIANT *pVar argument passed in
|
|
is NULL. We need to check this assumption.
|
|
|
|
[WMI RAID 1930, NT RAID 139298]
|
|
|
|
2. Remove Members_? What's happening?
|
|
|
|
[WMI RAID 2408]
|
|
|
|
3. Need to migrate from IUmiCustomInterfaceFactory to IWbemComBinding.
|
|
|
|
- Need to document use of IADsExtension for scriptable extensions
|
|
- Have some issues with COM binding interface
|
|
|
|
4. Whenever we create a new CSWbemObject, we need to potentially pass in
|
|
information that allows us to record the Security Descriptor settings used to
|
|
retrieve that object. The only reason we need this is so that the Path_
|
|
property can record those settings. A bit of a pain.
|
|
|
|
Since this can occur in many operations we need a helper object
|
|
to calculate the SD settings from the context and the flags.
|
|
|
|
5. CopyTo not supported in the DS any more. Should we keep the API in WMI
|
|
Scripting right now? What about SWbemServices.Copy?
|
|
|
|
[WMI RAID 2423]
|
|
|
|
6. Still wiating for Unlink Flags definition from core.
|
|
|
|
[WMI RAID 1933]
|
|
|
|
7. WBEM_MULTI_FLAG??
|
|
|
|
8. Might need a flag to SWbemServices::Delete to indicate "recursive delete".
|
|
|
|
[WMI RAID 2429]
|
|
|
|
9. Change all occurences of UMI to WMI. (note effect that this changes wmi: prefix
|
|
semantics from old style to new style paths)
|
|
|
|
[WMI RAID 2439]
|
|
|
|
10. SWbemObject._NewEnum, SWBemObject.Filter_, SWbemObject.Members_ and
|
|
SWbemServices.Filter_, SwbemServices._NewEnum all rely on pan-provider
|
|
support for the following queries:
|
|
|
|
- select * from Class1 GO select * from Class2
|
|
- CreateInstanceEnum("*")
|
|
|
|
But it appears that these features are in doubt. So do we drop this?
|
|
|
|
[NT RAID 134996, 137260]
|
|
|
|
11. Currently IWbemConnection:Open calls fail against downlevel boxes. Not good.
|
|
Even if they work, if we only allow IWbemServices and not IWbemServicesEx
|
|
then there could be some major changes required.
|
|
|
|
[NT RAID 135008]
|
|
|
|
<MEDIUM>
|
|
|
|
1. Work out which new bits justify the HandleNull override.
|
|
|
|
2. Integrate Jeff's async fixes into the Whistler codebase.
|
|
|
|
3. Improved Discovery of Propagated Methods & Properties (not sure I remember what this is).
|
|
|
|
4. FLAGS and Error Codes - sanity check from time to time
|
|
|
|
5. Why do VB Arrays have to be weakly typed when passing to a method invocation?
|
|
|
|
6. Do we need to use IWbemServices::PutObject and PutObjectAsync - why isn't
|
|
it sufficient to look at __GENUS?
|
|
|
|
|
|
<BLACKCOMB>
|
|
|
|
1. SWbemObject:
|
|
- Fix ability to support named parameters in WMI Schema Methods?
|
|
- Define a cache of ISWbemServicesEx pointers for an SWbemObject (keyed on
|
|
mode, strselector). This would enable us to avoid calling Open every time
|
|
an implicit coercion is made on SWbemObject to a container or scope.
|
|
|
|
|
|
========================= OLD STUFF ================================================
|
|
Post NT4 SP4
|
|
=============
|
|
|
|
1. WBEM_FLAG_ENSURE_LOCATABLE - means too many properties returned
|
|
|
|
2. Handle WBEM_S_DUPLICATE_OBJECT
|
|
|
|
3. Optimize Property/Qualifier/Context/Method iteration so that if there is only one iterator then
|
|
the underlying COM interface is used directly.
|
|
|
|
4. Optimize use of IWbemServices to reuse cached connections.
|
|
|
|
|
|
Language Feature Support Testing
|
|
================================
|
|
|
|
1. Null value passing
|
|
|
|
VBScript - Use the "null" value
|
|
JScript - Use the "null" value
|
|
Perl (CPAN) - Use Variant(VT_NULL, 0)
|
|
Perl (AS) - returns undefined (i.e. defined(val) returns false) OK
|
|
passing unassigned value into Perl causes it to translate it to 0(VT_I4)
|
|
|
|
2. Array value detection
|
|
|
|
VBScript - fine; use IsArray
|
|
JScript - 3.0 is broken - have to wait for 5.0 and try/catch
|
|
Perl - Dunno
|
|
|
|
3. Array passing -
|
|
|
|
VB
|
|
Can set array values into COM OK
|
|
Can read array values from COM OK
|
|
Can read individual array element values using Class.Prop(x) OK
|
|
Can set individual array element values
|
|
(NB: LBound and UBound on an IWbemProperty do not trigger a call to the default Property,
|
|
this behavior is different from VBS,)
|
|
|
|
VBScript
|
|
array values can be passed in either way across COM boundary
|
|
array assignments can be made OK
|
|
individual array element assignments can be made OK
|
|
|
|
Perl (AS)
|
|
array values can be passed in both directions (to pass into COM must use \@ to reference array),
|
|
have to check array and array element assignments - these are OK mostly
|
|
|
|
JScript
|
|
- need to use the VBArray function to wrap a SAFEARRAY passed from COM - this works.
|
|
- passing JScript arrays to COM works with IDispatchEx handling
|
|
- array element and array assignments work OK.
|
|
- individual array element assignments can't be made
|
|
|
|
4. Error handling
|
|
|
|
VBScript - Use the Err mechanism and set EXCEPINFO - this works
|
|
|
|
JScript - Completely bereft of any useful error handling (wait for 5.0)
|
|
|
|
Perl - Dunno?
|
|
|
|
5. Default member read/write
|
|
|
|
VBScript - GETs work fine (but simple default property PUTs don't work; need to specify member otherwise
|
|
VScript treats this as a reassignment of a simple non-object value to the variable)
|
|
By simple is meant assignments of the form
|
|
|
|
MyProperty = 25;
|
|
|
|
whereas compouns statements which include assignment such as
|
|
|
|
Class.Properties_("MyProperty") = 25
|
|
|
|
work, as VBScript calls into the Properties_ object on its Item() method with 2 parameters
|
|
("MyProperty" and 25).
|
|
|
|
JScript - same as for VBScript
|
|
|
|
VB - works fine in both directions
|
|
|
|
Perl - doesn't work in general (check new CPAN stuff)
|
|
|
|
|
|
|