windows-nt/Source/XPSP1/NT/admin/wmi/wbem/scripting/todo.txt

181 lines
5.6 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
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)