Source code of Windows XP (NT5)
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

  1. Whistler
  2. ========
  3. <HIGH>
  4. 1. SWbemPropertyEx::AddValues and DeleteValues - these are assuming that
  5. construction of the SWbemProperty object from SWbemPropertySet::Item
  6. is "cheap" and does not require retrieval of the property value. This in
  7. turn assumes that the IWbemClassObject::Get call does not force the
  8. UMI provider to get the value when the VARIANT *pVar argument passed in
  9. is NULL. We need to check this assumption.
  10. [WMI RAID 1930, NT RAID 139298]
  11. 2. Remove Members_? What's happening?
  12. [WMI RAID 2408]
  13. 3. Need to migrate from IUmiCustomInterfaceFactory to IWbemComBinding.
  14. - Need to document use of IADsExtension for scriptable extensions
  15. - Have some issues with COM binding interface
  16. 4. Whenever we create a new CSWbemObject, we need to potentially pass in
  17. information that allows us to record the Security Descriptor settings used to
  18. retrieve that object. The only reason we need this is so that the Path_
  19. property can record those settings. A bit of a pain.
  20. Since this can occur in many operations we need a helper object
  21. to calculate the SD settings from the context and the flags.
  22. 5. CopyTo not supported in the DS any more. Should we keep the API in WMI
  23. Scripting right now? What about SWbemServices.Copy?
  24. [WMI RAID 2423]
  25. 6. Still wiating for Unlink Flags definition from core.
  26. [WMI RAID 1933]
  27. 7. WBEM_MULTI_FLAG??
  28. 8. Might need a flag to SWbemServices::Delete to indicate "recursive delete".
  29. [WMI RAID 2429]
  30. 9. Change all occurences of UMI to WMI. (note effect that this changes wmi: prefix
  31. semantics from old style to new style paths)
  32. [WMI RAID 2439]
  33. 10. SWbemObject._NewEnum, SWBemObject.Filter_, SWbemObject.Members_ and
  34. SWbemServices.Filter_, SwbemServices._NewEnum all rely on pan-provider
  35. support for the following queries:
  36. - select * from Class1 GO select * from Class2
  37. - CreateInstanceEnum("*")
  38. But it appears that these features are in doubt. So do we drop this?
  39. [NT RAID 134996, 137260]
  40. 11. Currently IWbemConnection:Open calls fail against downlevel boxes. Not good.
  41. Even if they work, if we only allow IWbemServices and not IWbemServicesEx
  42. then there could be some major changes required.
  43. [NT RAID 135008]
  44. <MEDIUM>
  45. 1. Work out which new bits justify the HandleNull override.
  46. 2. Integrate Jeff's async fixes into the Whistler codebase.
  47. 3. Improved Discovery of Propagated Methods & Properties (not sure I remember what this is).
  48. 4. FLAGS and Error Codes - sanity check from time to time
  49. 5. Why do VB Arrays have to be weakly typed when passing to a method invocation?
  50. 6. Do we need to use IWbemServices::PutObject and PutObjectAsync - why isn't
  51. it sufficient to look at __GENUS?
  52. <BLACKCOMB>
  53. 1. SWbemObject:
  54. - Fix ability to support named parameters in WMI Schema Methods?
  55. - Define a cache of ISWbemServicesEx pointers for an SWbemObject (keyed on
  56. mode, strselector). This would enable us to avoid calling Open every time
  57. an implicit coercion is made on SWbemObject to a container or scope.
  58. ========================= OLD STUFF ================================================
  59. Post NT4 SP4
  60. =============
  61. 1. WBEM_FLAG_ENSURE_LOCATABLE - means too many properties returned
  62. 2. Handle WBEM_S_DUPLICATE_OBJECT
  63. 3. Optimize Property/Qualifier/Context/Method iteration so that if there is only one iterator then
  64. the underlying COM interface is used directly.
  65. 4. Optimize use of IWbemServices to reuse cached connections.
  66. Language Feature Support Testing
  67. ================================
  68. 1. Null value passing
  69. VBScript - Use the "null" value
  70. JScript - Use the "null" value
  71. Perl (CPAN) - Use Variant(VT_NULL, 0)
  72. Perl (AS) - returns undefined (i.e. defined(val) returns false) OK
  73. passing unassigned value into Perl causes it to translate it to 0(VT_I4)
  74. 2. Array value detection
  75. VBScript - fine; use IsArray
  76. JScript - 3.0 is broken - have to wait for 5.0 and try/catch
  77. Perl - Dunno
  78. 3. Array passing -
  79. VB
  80. Can set array values into COM OK
  81. Can read array values from COM OK
  82. Can read individual array element values using Class.Prop(x) OK
  83. Can set individual array element values
  84. (NB: LBound and UBound on an IWbemProperty do not trigger a call to the default Property,
  85. this behavior is different from VBS,)
  86. VBScript
  87. array values can be passed in either way across COM boundary
  88. array assignments can be made OK
  89. individual array element assignments can be made OK
  90. Perl (AS)
  91. array values can be passed in both directions (to pass into COM must use \@ to reference array),
  92. have to check array and array element assignments - these are OK mostly
  93. JScript
  94. - need to use the VBArray function to wrap a SAFEARRAY passed from COM - this works.
  95. - passing JScript arrays to COM works with IDispatchEx handling
  96. - array element and array assignments work OK.
  97. - individual array element assignments can't be made
  98. 4. Error handling
  99. VBScript - Use the Err mechanism and set EXCEPINFO - this works
  100. JScript - Completely bereft of any useful error handling (wait for 5.0)
  101. Perl - Dunno?
  102. 5. Default member read/write
  103. VBScript - GETs work fine (but simple default property PUTs don't work; need to specify member otherwise
  104. VScript treats this as a reassignment of a simple non-object value to the variable)
  105. By simple is meant assignments of the form
  106. MyProperty = 25;
  107. whereas compouns statements which include assignment such as
  108. Class.Properties_("MyProperty") = 25
  109. work, as VBScript calls into the Properties_ object on its Item() method with 2 parameters
  110. ("MyProperty" and 25).
  111. JScript - same as for VBScript
  112. VB - works fine in both directions
  113. Perl - doesn't work in general (check new CPAN stuff)