Leaked source code of windows server 2003
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.

678 lines
25 KiB

  1. <HTML>
  2. <HEAD>
  3. <TITLE>Device Console Scripting</TITLE>
  4. <META content="text/html; charset=windows-1252" http-equiv=Content-Type>
  5. <META content="Microsoft FrontPage 5.0" name=GENERATOR>
  6. </HEAD>
  7. <BODY link=#0000ff><FONT face=Verdana size=5>
  8. <H2>Device Console Scripting</H2></FONT><FONT face=Verdana size=2>
  9. <P><SPAN style="COLOR: #ff0000; FONT-FAMILY: Arial; FONT-SIZE: 10pt">[This is
  10. preliminary documentation and subject to change.]</SPAN></P>
  11. <H3>SUMMARY</H3>
  12. This document accompanies the Device Console COM Objects. The instructions herein apply to the Windows Whistler operating
  13. system.
  14. <p>The COM objects described in this document allow device query and management
  15. using any COM aware language, for example, Visual Basic, VBScript and JScript.
  16. <H3>HOW IT WORKS</H3>
  17. <p>Right-click on &quot;devcon.inf&quot; and click &quot;install&quot;. The COM objects will be
  18. installed and made available for use. The following document describes the
  19. objects available and samples on how to use them in context of VBScript.<h3>COM
  20. Objects</h3>
  21. <h4>DevCon.DeviceConsole {2F4D685C-7304-45F1-8075-443255A11156}</h4>
  22. <p>Root object that can be created via CreateObject either locally or remote.<h5>Properties</h5>
  23. <p>RebootRequired&nbsp;&nbsp;&nbsp; (Get/Set)<blockquote>
  24. <p>This property is set if any derived objects indicate a reboot is required.</blockquote>
  25. <h5>Methods</h5>
  26. <p>AllDevices(<i>[flags]</i>,<i>[machine]</i>)<blockquote>
  27. <p>Returns a <i>Devices </i>collection of all devices for local or specified
  28. machine. Flags include 1 (Include not-present devices), 2 (In context of current
  29. hardware profile rather than globally).</blockquote>
  30. <p>DevicesBySetupClasses(<i>classList</i>,<i>[flags]</i>,<i>[machine]</i>)<blockquote>
  31. <p>Returns a <i>Devices</i> collection of all devices of the specified setup
  32. classes, otherwise similar to AllDevices. The classes may either be GUID's in
  33. string form or class names. ClassList may be either a single string, a
  34. collection of strings or an array of strings.</blockquote>
  35. <p>DevicesByInterfaceClasses(<i>classList</i>,<i>[flags]</i>,<i>[machine]</i>)<blockquote>
  36. <p>Returns a <i>Devices</i> collection of all devices that currently support any
  37. of the specified interface classes. Interface classes must be specified as
  38. GUID's in string form. Classlist may be either a single string, a collection of
  39. strings or an array of strings.</blockquote>
  40. <p>DevicesByInstanceIds(<i>idList</i>,<i>[machine]</i>)<blockquote>
  41. <p>Same as CreateEmptyDeviceList followed by an &quot;Add&quot; on that device list.</blockquote>
  42. <p>SetupClasses(<i>[classList]</i>,<i>[machine]</i>)<blockquote>
  43. <p>Create a <i>SetupClasses</i> collection from the specified classlist.
  44. Classlist may be either a single string, a collection of strings or an array of
  45. strings. If classlist is omitted or is &quot;&quot;, all classes for local/specified
  46. machine is returned.</blockquote>
  47. <p>CreateEmptyDeviceList(<i>[machine]</i>)<blockquote>
  48. <p>Create a <i>Devices</i> collection that contains no devices for specified
  49. machine. Creating the collection object this way (or by any of the other methods
  50. in this object) associates the collection with this object and allows child
  51. objects to be associated with this object. Creating the<i> </i>collection object
  52. directly will not associate it with this object or a machine.<i> </i>
  53. </blockquote>
  54. <p>CreateEmptySetupClassList(<i>[machine]</i>)<blockquote>
  55. <p>Create a <i>SetupClasses</i> collection that contains no setup classes for
  56. specified machine. Creating the collection object this way (or by any of the
  57. other methods in this object) associates the collection with this object and
  58. allows child objects to be associated with this object. Creating the collection
  59. object directly will not associate it with this object or a machine.</blockquote>
  60. <p>UpdateDriver(<i>scriptName</i>,<i>hardwareId</i>,<i>[flags]</i>)<blockquote>
  61. <p>Updates all devices that have specified<i> </i>hardwareId with best<i> </i>
  62. driver in either specified script or system scripts (currently only INF files
  63. are supported). A failure must be caught with appropriate error handling. Reboot
  64. status can be checked via RebootRequired property. Appropriate permissions are
  65. required.</blockquote>
  66. <p>CheckReboot<blockquote>
  67. <p>Prompts user for reboot if one is required. Reboots machine if user says ok,
  68. otherwise returns. Appropriate permissions are required.</blockquote>
  69. <p>RebootReasonHardware<blockquote>
  70. <p>Unconditionally reboots the machine logging the reason as planned &quot;hardware&quot;.
  71. Appropriate permissions are required.</blockquote>
  72. <p>AttachEvent(<i>event,handler</i>)<blockquote>
  73. <p>Attach an event handler for the specified <i>event</i>. This function returns
  74. 'true' to indicate success. <span style="background-color: #FFFF00">currently no
  75. other value is returned.</span> <i>Handler</i> is a function pointer. If
  76. multiple handlers are specified, there is no guarantee on order of execution. In
  77. VBScript, the <i>handler</i> parameter must be obtained using &quot;getRef&quot;. The
  78. following events are currently defined:<blockquote>
  79. <table border="0" cellpadding="4" style="border-collapse: collapse" bordercolor="#111111" cellspacing="4">
  80. <tr>
  81. <td><b>Event name</b></td>
  82. <td><b>Parameters</b></td>
  83. <td><b>Action</b></td>
  84. </tr>
  85. <tr>
  86. <td>OnDeviceNodesChanged</td>
  87. <td><i>none</i></td>
  88. <td>Indicates a device change (inserted/deleted/started/stopped) akin to
  89. DBT_DEVNODES_CHANGED.</td>
  90. </tr>
  91. </table>
  92. </blockquote>
  93. </blockquote>
  94. <p>DetachEvent(<i>event,</i><i>handler</i>)<blockquote>
  95. <p>Detach event handler previously attached by AttachEvent. <i>Handler</i> and
  96. <i>event</i> must be exactly the same as that specified in AttachEvent.</blockquote>
  97. <h4>DevCon.Strings {BFDE9AEE-9418-42C0-8FA2-8B04C31ECDC7}</h4>
  98. <p>Root object that can be created via CreateObject, also may be returned by
  99. methods/properties. Provides a dynamic collection of strings. This dynamic
  100. collection may be enumerated and/or indexed. Default method is &quot;Item&quot;.<h5>
  101. Properties</h5>
  102. <p>CaseSensative (Get/Set)<blockquote>
  103. <p>Normally the strings collection is lenient on case when indexing by string or
  104. when finding strings. Leniency may be changed using this property. All strings
  105. are stored case sensitive.</blockquote>
  106. <p>Count (Get)<blockquote>
  107. <p>Number of items in the collection. The Collection is indexed 1..Count
  108. inclusive.</blockquote>
  109. <h5>Methods</h5>
  110. <p>Item(<i>[index/value]</i>) (Default)<blockquote>
  111. <p>If no index specified, a snapshot of the collection is returned as a 1-based
  112. array, otherwise the indexed string is returned. Either a numerical or string
  113. index may be specified.</blockquote>
  114. <p>Add(<i>items</i>)<blockquote>
  115. <p>A string, collection of strings or array of strings may be added to the
  116. collection. Multi-dimension arrays are flattened.</blockquote>
  117. <p>Insert(<i>index/value</i>,<i>items</i>)<blockquote>
  118. <p>A string, collection of strings or array of strings may be inserted before
  119. the specified index (which may be a string in the collection or a numeric
  120. index).</blockquote>
  121. <p>Remove(<i>index/value</i>)<blockquote>
  122. <p>Remove a string either by numeric index or by value.</blockquote>
  123. <p>Find(<i>value</i>)<blockquote>
  124. <p>Returns index of string if it exists, otherwise 0.</blockquote>
  125. <h4>&nbsp;</h4>
  126. <h4>DevCon.SetupClasses {84524499-52D7-4336-8A5D-EC6FE6A9C8DE}</h4>
  127. <p>Root object that can be created via CreateObject (although creation via
  128. DeviceConsole is preferred). Provides a dynamic collection of setup classes.
  129. This dynamic collection may be enumerated and/or indexed. Default method is
  130. &quot;Item&quot;. This object may be associated with a machine and is typically associated
  131. with a DeviceConsole object.<h5>Properties</h5>
  132. <p>Count (Get)<blockquote>
  133. <p>Returns number of SetupClass objects in the collection.</blockquote>
  134. <h5>Methods</h5>
  135. <p>Item(<i>index/guid</i>) (Default)<blockquote>
  136. <p>Returns <i>SetupClass</i> object at specified index. Index is 1-based
  137. numeric, or the class GUID may be supplied.</blockquote>
  138. <p>Add(<i>classNames</i>)<blockquote>
  139. <p>Add one or more classes to the collection. If a single GUID string is
  140. specified, then only one SetupClass object will be added. If a class name is
  141. specified, it is possible for multiple SetupClass objects to be associated with
  142. the class name.</blockquote>
  143. <p>Remove(<i>index/guid</i>)<blockquote>
  144. <p>Remove a class from the collection.</blockquote>
  145. <p>Devices(<i>[flags]</i>)<blockquote>
  146. <p>Return <i>Devices</i> collection that contains the union of the devices of
  147. all the device classes specified in this collection.</blockquote>
  148. <h4>&nbsp;</h4>
  149. <h4>DevCon.SetupClass</h4>
  150. <p>A single object in the SetupClasses collection. Inherits any information
  151. associated with the SetupClasses collection it was derived from. Default
  152. property is &quot;Guid&quot;.<h5>Properties</h5>
  153. <p>Guid (Get, Default)<blockquote>
  154. <p>Returns class Guid.</blockquote>
  155. <p>Name (Get)<blockquote>
  156. <p>Returns simple name of the setup class.</blockquote>
  157. <p>Description (Get)<blockquote>
  158. <p>Returns class description.</blockquote>
  159. <p>Security (Get/Set)<blockquote>
  160. <p>Default device security for class in SDDL format. Setting it to null or
  161. nothing will delete setting.<span style="background-color: #FFFF00"> Not yet
  162. implemented.</span></p>
  163. </blockquote>
  164. <p>DeviceTypeOverride (Set/Get)<blockquote>
  165. <p>Default device type for class (eg FILE_DEVICE_CDROM = 0x02). Setting it to
  166. null or nothing will delete setting.<span style="background-color: #FFFF00"> Not
  167. yet implemented.</span></blockquote>
  168. <p>ForceExclusive (Set/Get)<blockquote>
  169. <p>If TRUE, sets default to force all devices in the class to only be opened in exclusive mode.
  170. Setting it to null or nothing will delete setting.<span style="background-color: #FFFF00">
  171. Not yet implemented.</span></blockquote>
  172. <p>CharacteristicsOverride (Get/Set)<blockquote>
  173. <p>Allows forcing (setting) of FILE_REMOVABLE_MEDIA (1) FILE_READ_ONLY_DEVICE
  174. (2) FILE_FLOPPY_DISKETTE (4) FILE_WRITE_ONCE_MEDIA (8) FILE_DEVICE_SECURE_OPEN
  175. (256)<p>If specified, sets default for the class. Setting it to null or nothing
  176. will delete setting.<span style="background-color: #FFFF00"> Not yet
  177. implemented.</span></blockquote>
  178. <p>Machine (Get)<blockquote>
  179. <p>Name of remote machine (usually prefixed by '\\').</blockquote>
  180. <p>&nbsp;<h5>Methods</h5>
  181. <p>Devices(<i>[flags]</i>)<blockquote>
  182. <p>Return <i>Devices</i> collection for devices of this specific setup class.</blockquote>
  183. <p>CreateEmptyDeviceList()<blockquote>
  184. <p>Creates an empty device list that is locked to this setup class. (That is,
  185. no devices can be added to it unless that device has the same setup class).</p>
  186. </blockquote>
  187. <p>RegRead(<i>keyPath</i>)<blockquote>
  188. <p>If keyPath ends in
  189. &quot;\&quot; then read key's default value, otherwise read named value. Supports reading
  190. of REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ and REG_DWORD values.</blockquote>
  191. <p>RegWrite(<i>keyPath</i>,<i>value</i>,<i>[type]</i>)<blockquote>
  192. <p>If keyPath
  193. ends in &quot;\&quot; then write key's default value, otherwise write named value.
  194. Supports writing of REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD and
  195. REG_BINARY values. If type is specified, it should be a string &quot;REG_SZ&quot;, &quot;REG_EXPAND_SZ&quot;,
  196. &quot;REG_MULTI_SZ&quot;, &quot;REG_DWORD&quot; or &quot;REG_BINARY&quot; and explicitly indicates the type of
  197. value to be written. If not specified, type is determined from value
  198. (collections will be written as REG_MULTI_SZ, strings as REG_SZ, integers as
  199. REG_DWORD). If &quot;REG_BINARY&quot; is specified, value must be numeric.</blockquote>
  200. <p>RegDelete(keyPath)<blockquote>
  201. <p>Delete class specific value.</blockquote>
  202. <h4>&nbsp;</h4>
  203. <h4>DevCon.Devices {176FAC5E-3A43-42A3-9CFC-157308934DF4}</h4>
  204. <p>Root object that can be created via CreateObject (although creation via
  205. DeviceConsole or derived objects is preferred). Provides a dynamic collection of
  206. devices. This dynamic collection may be enumerated and/or indexed. This object
  207. may be associated with a machine and is typically associated with a
  208. DeviceConsole object. Default method is &quot;Item&quot;.<h5>Properties</h5>
  209. <p>Count (Get)<blockquote>
  210. <p>Returns number of Device objects in the collection.</blockquote>
  211. <h5>Methods</h5>
  212. <p>Item(<i>index/instanceId</i>) (Default)<blockquote>
  213. <p>Return specified Device object. Index is 1-based.</blockquote>
  214. <p>Add(<i>instanceId/instanceIdCollection</i>)<blockquote>
  215. <p>Add one or more devices with specified instance ID's to this collection. This operation
  216. will fail if the specified device does not exist, or if the collection is locked
  217. to a specific setup class and the devi&nbsp;&nbsp;&nbsp; ce is of a different setup class.</blockquote>
  218. <p>Remove(<i>index/instanceId</i>)<blockquote>
  219. <p>Remove a device from collection. Index is 1-based. Does not delete the device
  220. itself.</blockquote>
  221. <p>CreateRootDevice(<i>[hardwareId]</i>)<blockquote>
  222. <p>Create a root-enumerated device and add to the collection. If the collection
  223. is locked to a specific setup class, the new device is associated with that
  224. setup class. The device will have the specified hardware id.&nbsp;Returns a Device object for the newly created device.</blockquote>
  225. <h4>&nbsp;</h4>
  226. <h4>DevCon.Device</h4>
  227. <p>A single object representing a device. Usually associated with a
  228. DeviceConsole object and may be associated with a specific machine. Default
  229. property is &quot;InstanceId&quot;<h5>Properties</h5>
  230. <p>InstanceId (Default,Get)<blockquote>
  231. <p>Instance Id of the device.</blockquote>
  232. <p>RebootRequired (Get/Set)<blockquote>
  233. <p>Indicates if this device requires a reboot to start. Setting this property
  234. will also set the RebootRequired property of the associated DeviceConsole object
  235. if any.</blockquote>
  236. <p>Description (Get)<blockquote>
  237. <p>Description of device as it would appear in device manager. If friendly name
  238. is available, that is returned instead.</blockquote>
  239. <p>HardwareIds (Get/Set)<blockquote>
  240. <p>Strings collection of all hardware Id's reported by the device. May be
  241. modified for root-enumerated devices. Setting it to null or nothing will delete
  242. it.</blockquote>
  243. <p>CompatibleIds (Get/Set)<blockquote>
  244. <p>Strings collection of all compatible Id's reported by the device. May be
  245. modified for root-enumerated devices. Setting it to null or nothing will delete
  246. it.</blockquote>
  247. <p>ServiceName (Get)<blockquote>
  248. <p>Name of FDO service.</blockquote>
  249. <p>Class (Get)<blockquote>
  250. <p>GUID of SetupClass that device is associated with.</blockquote>
  251. <p>Manufacturer (Get)<blockquote>
  252. <p>Name of manufacturer of device if known.</blockquote>
  253. <p>FriendlyName (Get/Set)<blockquote>
  254. <p>Friendly name of device. Setting it to null or nothing will delete it.</blockquote>
  255. <p>LocationInformation (Get/Set)<blockquote>
  256. <p>Informative information about where the device is located. Setting it to null
  257. or nothing will delete it.</blockquote>
  258. <p>UpperFilters (Get/Set)<blockquote>
  259. <p>Strings collection of all upper filter services. Setting it to null or
  260. nothing will delete it.</blockquote>
  261. <p>LowerFilters (Get/Set)<blockquote>
  262. <p>Strings collection of all lower filter services. Setting it to null or
  263. nothing will delete it.</blockquote>
  264. <p>EnumeratorName (Get)<blockquote>
  265. <p>Indicates bus enumerator type.</blockquote>
  266. <p>Security (Get/Set)<blockquote>
  267. <p>Device security in SDDL format. Setting it to null or nothing will delete
  268. it.</p>
  269. </blockquote>
  270. <p>DeviceTypeOverride (Set/Get)<blockquote>
  271. <p>Allows device type to be specified (eg FILE_DEVICE_CDROM = 0x02). If
  272. specified overrides class settings. Setting it to null or nothing will delete
  273. it.</blockquote>
  274. <p>ForceExclusive (Set/Get)<blockquote>
  275. <p>If TRUE, forces the device to only be opened in exclusive mode. If specified,
  276. overrides class settings. Setting it to null or nothing will delete it.</blockquote>
  277. <p>CharacteristicsOverride (Get/Set)<blockquote>
  278. <p>Allows forcing (setting) of FILE_REMOVABLE_MEDIA (1) FILE_READ_ONLY_DEVICE
  279. (2) FILE_FLOPPY_DISKETTE (4) FILE_WRITE_ONCE_MEDIA (8) FILE_DEVICE_SECURE_OPEN
  280. (256)<p>If specified, overrides class settings. Setting it to null or nothing
  281. will delete it.</blockquote>
  282. <p>IsRunning (Get)<blockquote>
  283. <p>True if device is up and running.</blockquote>
  284. <p>IsDisabled (Get)<blockquote>
  285. <p>True if device is disabled.</blockquote>
  286. <p>HasProblem (Get)<blockquote>
  287. <p>True if device has any kind of problem.</blockquote>
  288. <p>ProblemCode (Get)<blockquote>
  289. <p>Non-zero problem code if available, otherwise 0 (including if the device has
  290. a private problem).</blockquote>
  291. <p>HasPrivateProblem (Get)<blockquote>
  292. <p>True if device has a private problem that no code is available for.</blockquote>
  293. <p>IsRootEnumerated (Get)<blockquote>
  294. <p>True if device is root enumerated.</blockquote>
  295. <p>IsDisableable (Get)<blockquote>
  296. <p>True if device can be disabled.</blockquote>
  297. <p>IsRemovable (Get)<blockquote>
  298. <p>True if device supports being removed while OS is running.</blockquote>
  299. <p>Machine (Get)<blockquote>
  300. <p>Name of remote machine (usually prefixed by '\\').</blockquote>
  301. <h5>Methods</h5>
  302. <p>Delete<blockquote>
  303. <p>Delete (remove) the device. If successful, this object is invalid and the
  304. device is removed.</blockquote>
  305. <p>Enable<blockquote>
  306. <p>Enable the device. If reboot is required, it is reported through the
  307. RebootRequired property.</blockquote>
  308. <p>Disable<blockquote>
  309. <p>Disable the device. If reboot is required, it is reported through the
  310. RebootRequired property.</blockquote>
  311. <p>Start<blockquote>
  312. <p>Start a stopped device.</blockquote>
  313. <p>Stop<blockquote>
  314. <p>Stop a running device.</blockquote>
  315. <p>Restart<blockquote>
  316. <p>Stop and then Start a device (property-change). This may succeed in cases
  317. where Stop-Start would not.</blockquote>
  318. <p>HasInterface(<i>interfaceClass</i>)<blockquote>
  319. <p>Return true if the device supports the specified interface (and that
  320. interface is currently active).</blockquote>
  321. <p>RegRead(<i>keyPath</i>)<blockquote>
  322. <p>If keyPath is prefixed with &quot;SW\&quot; then read the devices software key. If it
  323. is prefixed with &quot;HW\&quot; then read the devices hardware key. If keyPath ends in
  324. &quot;\&quot; then read key's default value, otherwise read named value. Supports reading
  325. of REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ and REG_DWORD values.</blockquote>
  326. <p>RegWrite(<i>keyPath</i>,<i>value</i>,<i>[type]</i>)<blockquote>
  327. <p>If keyPath is prefixed with &quot;SW\&quot; then write to the devices software key. If
  328. it is prefixed with &quot;HW\&quot; then write to the devices hardware key. If keyPath
  329. ends in &quot;\&quot; then write key's default value, otherwise write named value.
  330. Supports writing of REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD and
  331. REG_BINARY values. If type is specified, it should be a string &quot;REG_SZ&quot;, &quot;REG_EXPAND_SZ&quot;,
  332. &quot;REG_MULTI_SZ&quot;, &quot;REG_DWORD&quot; or &quot;REG_BINARY&quot; and explicitly indicates the type of
  333. value to be written. If not specified, type is determined from value
  334. (collections will be written as REG_MULTI_SZ, strings as REG_SZ, integers as
  335. REG_DWORD). If &quot;REG_BINARY&quot; is specified, value must be numeric.</blockquote>
  336. <p>RegDelete(keyPath)<blockquote>
  337. <p>If keyPath is prefixed with &quot;SW\&quot; then delete the specified device software
  338. value. If it is prefixed with &quot;HW\&quot; then delete the specified device
  339. hardware value.</blockquote>
  340. <p>CurrentDriverPackage<blockquote>
  341. <p>Determine driver package that was used for device. Return a DriverPackage
  342. object or &quot;nothing&quot; if no driver package found for this device.</blockquote>
  343. <p>FindDriverPackages(<i>[pathList]</i>)<blockquote>
  344. <p>Obtain a DriverPackages collection of all viable drivers by searching system
  345. directories and specified pathList (string/collection/array) for driver
  346. packages. PathList may contain directories to search for installation scripts,
  347. or may specify installation scripts by name (currently only INF files).
  348. Sub-directories are not searched. An empty collection is returned if no
  349. compatible drivers were found. If a path list is specified, only those
  350. files/directories are searched unless one of the paths is &quot;*&quot; (search default
  351. paths).<p>&nbsp;</blockquote>
  352. <h4>DevCon.DriverPackages</h4>
  353. <p>A collection of Driver Packages for a specific device. This collection may be
  354. enumerated and/or indexed. This object is always associated with a device.
  355. Default method is &quot;Item&quot;.<h5>Properties</h5>
  356. <p>Count<blockquote>
  357. <p>Number of drivers.</blockquote>
  358. <h5>Methods</h5>
  359. <p>Item(<i>[index]</i>)<blockquote>
  360. <p>Returns a specific DriverPackage object. Index is 1-based.</blockquote>
  361. <p>BestDriver<blockquote>
  362. <p>Returns best DriverPackage object for device.</blockquote>
  363. <p>Add(<i>[pathlist]</i>)<blockquote>
  364. <p>Add more drivers. <span style="background-color: #FFFF00">Not implemented.</span><p>&nbsp;</blockquote>
  365. <h4>DevCon.DriverPackage</h4>
  366. <p>An individual driver package.<h5>Properties</h5>
  367. <p>Description (Get)<blockquote>
  368. <p>Default description for the device. (Note that this may be different to
  369. DriverDescription).</blockquote>
  370. <p>Manufacturer (Get)<blockquote>
  371. <p>Manufacturer of the device.</blockquote>
  372. <p>Provider (Get)<blockquote>
  373. <p>Provider of the install script.</blockquote>
  374. <p>Date (Get)<blockquote>
  375. <p>Driver date (returned as a date/time type).</blockquote>
  376. <p>Version (Get)<blockquote>
  377. <p>Version of driver (returned as a string in format &quot;a.b.c.d&quot;).</blockquote>
  378. <p>ScriptFile (Get)<blockquote>
  379. <p>Name of file that determines how driver is to be installed. Currently only
  380. INF files are supported.</blockquote>
  381. <p>ScriptName (Get)<blockquote>
  382. <p>In context of INF files, this is the decorated &quot;DDInstall&quot; section.</blockquote>
  383. <p>HardwareIds (Get)<blockquote>
  384. <p>Zero or more hardware ID's returned as a collection of strings. These are
  385. devices the package was designed for.</blockquote>
  386. <p>CompatibleIds (Get)<blockquote>
  387. <p>Zero or more compatible ID's returned as a collection of strings. These are
  388. devices the package will work with.</blockquote>
  389. <p>DriverDescription (Get)<blockquote>
  390. <p>A description of the driver (vs. the default description of the device).</blockquote>
  391. <p>Reject (Get/Set)<blockquote>
  392. <p>Mark the driver that it should not be considered when using &quot;BestDriver&quot;
  393. method in containing collection.</blockquote>
  394. <p>IsClassDriver (Get)<blockquote>
  395. <p>Indicates this is a class driver.</blockquote>
  396. <p>IsCompatibleDriver (Get)<blockquote>
  397. <p>Indicates this is a compatible driver.</blockquote>
  398. <p>DescriptionIsDuplicate (Get)<blockquote>
  399. <p>Indicates there is another driver with same description in the containing
  400. collection.</blockquote>
  401. <p>ProviderIsDuplicate (Get)<blockquote>
  402. <p>Indicates there is another driver with same provider in the containing
  403. collection.</blockquote>
  404. <p>ExcludeFromList (Get)<blockquote>
  405. <p>Exclude this driver when using (future) DisplayAndSelectDriver method on
  406. the containing collection.</blockquote>
  407. <p>FromInternet (Get)<blockquote>
  408. <p>Indicates this driver is from the internet.</blockquote>
  409. <p>NoDriver (Get)<blockquote>
  410. <p>No physical driver will be installed with this driver package.</blockquote>
  411. <p>OldDriver (Get)<blockquote>
  412. <p>Driver presently/previously controlled device.</blockquote>
  413. <p>OldInternetDriver (Get)<blockquote>
  414. <p>Driver was from internet but source files are no longer available.</blockquote>
  415. <p>Rank (Get/Set)<blockquote>
  416. <p>Obtains/modifies ranking of driver prior to searching using &quot;BestDriver&quot;
  417. method in containing collection. The value '0' indicates ideal driver. Values
  418. 0x8000-0xFFFF indicate an un-trusted driver.</blockquote>
  419. <h5>Methods</h5>
  420. <p>DriverFiles<blockquote>
  421. <p>For an installed package, the files that are used by the driver. For other
  422. drivers, the files that would be used by the driver once installed.</blockquote>
  423. <p>Manifest<blockquote>
  424. <p>Source location of the files. <span style="background-color: #FFFF00">Not
  425. implemented correctly, needs rethinking.</span></blockquote>
  426. <p>&nbsp;<h4>DevCon.DeviceIcon {514C3095-47E8-4B24-B831-FB1C22C1B1B6}</h4>
  427. <p>ActiveX control to display a device/class icon. Control is windowless and
  428. transparent.<h5>Properties</h5>
  429. <h5>Methods</h5>
  430. <p>ObtainIcon(<i>deviceObject</i>/<i>classObject</i>)</p>
  431. <blockquote>
  432. <p>Pass in a device or class object. An appropriate icon will be displayed.</p>
  433. </blockquote>
  434. <p>&nbsp;</p>
  435. </FONT><FONT face="Courier" size="3"><H3>FEEDBACK</H3>
  436. <P>We welcome your comments, problem reports and wish-list requests. Please
  437. submit them by pointing your Internet browser to <A href="http://www.microsoft.com/ddk">http://www.microsoft.com/ddk</A>.
  438. </FONT></P>
  439. <P align=center><FONT face=Verdana size=2><A href="#top">Top of page</A></P></FONT>
  440. <TABLE border=0" cellSpacing="0" width="624">
  441. <TR>
  442. <TD bgColor="#00ffff" height="2" vAlign="middle"></TD></TR></TABLE>
  443. <FONT face="MS Sans Serif" size=1>
  444. <P>&copy; Microsoft Corporation 2001</FONT><FONT face=Verdana size=2>
  445. </P></FONT>
  446. </BODY>