home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / WindowsServerTrial / server.iso / sources / install.wim / 5 / Windows / System32 / wbem / bcd.mof < prev    next >
Encoding:
Text File  |  2008-01-05  |  9.1 KB  |  315 lines

  1. #pragma namespace("\\\\.\\root\\wmi")
  2.  
  3. instance of __Win32Provider as $BcdProv {
  4.     Name = "BcdProv";
  5.     CLSID = "{f8a56d3e-e304-4a9f-a916-5187019d7759}";
  6. };
  7.  
  8. instance of __MethodProviderRegistration {
  9.     Provider = $BcdProv;
  10. };
  11.  
  12. instance of __InstanceProviderRegistration {
  13.     Provider = $BcdProv;
  14.     SupportsGet = TRUE;
  15. };
  16.  
  17. [
  18. Dynamic,
  19. Provider("BcdProv"),
  20. Description("This class represents a BCD store which holds a collection of BCD objects.") : Amended
  21. ]
  22. class BcdStore {
  23.  
  24.     [
  25.     Key,
  26.     Read,
  27.     Description("A BcdStore is uniquely identified by its file path. The system store is denoted via an empty file path.") : Amended
  28.     ]
  29.     string FilePath;
  30.  
  31.     [implemented, static]
  32.     boolean OpenStore([in] string File, [out] BcdStore Store);
  33.  
  34.     [implemented, static]
  35.     boolean ImportStore([in] string File);
  36.  
  37.     [implemented, static]
  38.     boolean ImportStoreWithFlags([in] string File, [in, BitMap{"0"}, BitValues{"Clean"}] uint32 Flags);
  39.  
  40.     [implemented, static]
  41.     boolean ExportStore([in] string File);
  42.  
  43.     [implemented, static]
  44.     boolean CreateStore([in] string File, [out] BcdStore Store);
  45.  
  46.     [implemented, static]
  47.     boolean DeleteSystemStore();
  48.  
  49.     [implemented, static]
  50.     boolean GetSystemDisk([out] string Disk);
  51.  
  52.     [implemented, static]
  53.     boolean GetSystemPartition([out] string Partition);
  54.  
  55.     [implemented, static]
  56.     boolean SetSystemStoreDevice([in] string Partition);
  57.  
  58.     [implemented]
  59.     boolean EnumerateObjects([in] uint32 Type, [out] BcdObject Objects[]);
  60.  
  61.     [implemented]
  62.     boolean OpenObject([in] string Id, [out] BcdObject Object);
  63.  
  64.     [implemented]
  65.     boolean CreateObject([in] string Id, [in] uint32 Type, [out] BcdObject Object);
  66.  
  67.     [implemented]
  68.     boolean DeleteObject([in] string Id);
  69.  
  70.     [implemented]
  71.     boolean CopyObject([in] string SourceStoreFile, [in] string SourceId, [in, BitMap{"0", "1"}, BitValues{"CreateNewId", "DeleteExistingObject"}] uint32 Flags, [out] BcdObject Object);
  72.  
  73.     [implemented]
  74.     boolean CopyObjects([in] string SourceStoreFile, [in] uint32 Type, [in, BitMap{"0", "1"}, BitValues{"CreateNewId", "DeleteExistingObject"}] uint32 Flags);
  75. };
  76.  
  77. [
  78. Dynamic,
  79. Provider("BcdProv"),
  80. Description("This class represents a BCD object which holds a collection of BCD elements. Each BCD object is is identified by a guid.") : Amended
  81. ]
  82. class BcdObject {
  83.     [
  84.     Key,
  85.     Read,
  86.     Description("This is the file path of the store that this object belongs to.") : Amended
  87.     ]
  88.     string StoreFilePath;
  89.  
  90.     [
  91.     Key,
  92.     Read,
  93.     Description("This is the guid id of this object, unique to this store.") : Amended
  94.     ]
  95.     string Id;
  96.  
  97.     [
  98.     Read,
  99.     Description("The upper 4 bits (28-31) represent the object type. The meaning of the lower 28 bits (0-27) is dependent on the object type.") : Amended
  100.     ]
  101.     uint32 Type;
  102.  
  103.     [implemented]
  104.     boolean EnumerateElementTypes([out] uint32 Types[]);
  105.  
  106.     [implemented]
  107.     boolean EnumerateElements([out] BcdElement Elements[]);
  108.  
  109.     [implemented]
  110.     boolean GetElement([in] uint32 Type, [out] BcdElement Element);
  111.  
  112.     [implemented]
  113.     boolean SetDeviceElement([in] uint32 Type, [in, ValueMap{"1", "2", "3", "4", "5"}, Values{"BootDevice", "PartitionDevice", "FileDevice", "RamdiskDevice", "UnknownDevice"}] uint32 DeviceType, [in] string AdditionalOptions);
  114.  
  115.     [implemented]
  116.     boolean SetPartitionDeviceElement([in] uint32 Type, [in, ValueMap{"1", "2", "3", "4", "5"}, Values{"BootDevice", "PartitionDevice", "FileDevice", "RamdiskDevice", "UnknownDevice"}] uint32 DeviceType, [in] string AdditionalOptions, [in] string Path);
  117.  
  118.     [implemented]
  119.     boolean SetFileDeviceElement([in] uint32 Type, [in, ValueMap{"1", "2", "3", "4", "5"}, Values{"BootDevice", "PartitionDevice", "FileDevice", "RamdiskDevice", "UnknownDevice"}] uint32 DeviceType, [in] string AdditionalOptions, [in] string Path, [in] uint32 ParentDeviceType, [in] string ParentAdditionalOptions, [in] string ParentPath);
  120.  
  121.     [implemented]
  122.     boolean SetStringElement([in] uint32 Type, [in] string String);
  123.  
  124.     [implemented]
  125.     boolean SetObjectElement([in] uint32 Type, [in] string Id);
  126.  
  127.     [implemented]
  128.     boolean SetObjectListElement([in] uint32 Type, [in] string Ids[]);
  129.  
  130.     [implemented]
  131.     boolean SetIntegerElement([in] uint32 Type, [in] uint64 Integer);
  132.     
  133.     [implemented]
  134.     boolean SetIntegerListElement([in] uint32 Type, [in] uint64 Integers[]);
  135.  
  136.     [implemented]
  137.     boolean SetBooleanElement([in] uint32 Type, [in] boolean Boolean);
  138.  
  139.     [implemented]
  140.     boolean DeleteElement([in] uint32 Type);
  141. };
  142.  
  143. [
  144. Description("This is the base class for all BCD elements. The Type field identifies the specific sub-type of element.") : Amended
  145. ]
  146. class BcdElement {
  147.     [
  148.     Read,
  149.     Description("This is the file path of the store that this element is a part of.") : Amended
  150.     ]
  151.     string StoreFilePath;
  152.  
  153.     [
  154.     Read,
  155.     Description("This is the id of the object that this element belongs to.") : Amended
  156.     ]
  157.     string ObjectId;
  158.  
  159.     [
  160.     Read,
  161.     Description("The upper 4 bits (28-31) determine the class of the element. The next 4 bits (24-27) determine the format of the element data. The lower 24 bits (0-23) determine the sub-type of the element.") : Amended
  162.     ]
  163.     uint32 Type;
  164. };
  165.  
  166. [
  167. Description("This is the root class of all device data types.") : Amended
  168. ]
  169. class BcdDeviceData {
  170.     [
  171.     Read,
  172.     Description("This identifies the type of device element. This value dictates whether this is a file device element or a partition device element.") : Amended,
  173.     ValueMap{"1", "2", "3", "4", "5"},
  174.     Values{"BootDevice", "PartitionDevice", "FileDevice", "RamdiskDevice", "UnknownDevice"}
  175.     ]
  176.     uint32 DeviceType;
  177.  
  178.     [
  179.     Read,
  180.     Description("This represents the additional options for the element.") : Amended
  181.     ]
  182.     string AdditionalOptions;
  183. };
  184.  
  185. [
  186. Description("This is the base device element class. Device elements come in two flavors, File and Partition, and can be distinguished by the DeviceType field.") : Amended
  187. ]
  188. class BcdDeviceElement : BcdElement {
  189.     [
  190.     Read,
  191.     Description("This field contains information about the device.") : Amended
  192.     ]
  193.     BcdDeviceData Device;
  194. };
  195.  
  196. [
  197. Description("This class represents unknown device data and exposes the data as a binary blob.") : Amended
  198. ]
  199. class BcdDeviceUnknownData : BcdDeviceData {
  200.     [
  201.     Read,
  202.     Description("This is the binary data of the unknown device element.") : Amended
  203.     ]
  204.     uint8 Data[];
  205. };
  206.  
  207. [
  208. Description("This represents a file device element.") : Amended
  209. ]
  210. class BcdDeviceFileData : BcdDeviceData {
  211.     [
  212.     Read,
  213.     Description("This is the parent device of this file device.") : Amended
  214.     ]
  215.     BcdDeviceData Parent;
  216.  
  217.     [
  218.     Read,
  219.     Description("This is the device path.") : Amended
  220.     ]
  221.     string Path;
  222. };
  223.  
  224. [
  225. Description("This represents a partition device element.") : Amended
  226. ]
  227. class BcdDevicePartitionData : BcdDeviceData {
  228.     [
  229.     Read,
  230.     Description("This is the device path.") : Amended
  231.     ]
  232.     string Path;
  233. };
  234.  
  235. [
  236. Description("This represents a string element.") : Amended
  237. ]
  238. class BcdStringElement : BcdElement {
  239.     [
  240.     Read,
  241.     Description("This is the string value of the element.") : Amended
  242.     ]
  243.     string String;
  244. };
  245.  
  246. [
  247. Description("This represents an object element. The Id field specifies a BcdObject in the same store.") : Amended
  248. ]
  249. class BcdObjectElement : BcdElement {
  250.     [
  251.     Read,
  252.     Description("This is the guid id of the object this element refers to.") : Amended
  253.     ]
  254.     string Id;
  255. };
  256.  
  257. [
  258. Description("This represents a list of objects. Each element in the Ids array specifies the guid id of an object in the same store.") : Amended
  259. ]
  260. class BcdObjectListElement : BcdElement {
  261.     [
  262.     Read,
  263.     Description("This is the array of object ids this element refers to.") : Amended
  264.     ]
  265.     string Ids[];
  266. };
  267.  
  268. [
  269. Description("This represents an integer element. Note that although Integer is a 64bit number, it must be passed as a string since Automation has no native 64bit type.") : Amended
  270. ]
  271. class BcdIntegerElement : BcdElement {
  272.     [
  273.     Read,
  274.     Description("This is the integer value of the element.") : Amended
  275.     ]
  276.     uint64 Integer;
  277. };
  278.  
  279. [
  280. Description("This represents an integer list element. Note that although Integers are 64bit numbers, they must be passed as strings since Automation has no native 64bit type.") : Amended
  281. ]
  282. class BcdIntegerListElement : BcdElement {
  283.     [
  284.     Read,
  285.     Description("This is the array of integer values of the element.") : Amended
  286.     ]
  287.     uint64 Integers[];
  288. };
  289.  
  290. [
  291. Description("This represents a boolean element.") : Amended
  292. ]
  293. class BcdBooleanElement : BcdElement {
  294.     [
  295.     Read,
  296.     Description("This is the boolean value of the element.") : Amended
  297.     ]
  298.     boolean Boolean;
  299. };
  300.  
  301. [
  302. Description("This represents an unknown element.") : Amended
  303. ]
  304. class BcdUnknownElement : BcdElement {
  305.     [
  306.     Read,
  307.     Description("This is the actual value of the element inside the BCD store.") : Amended
  308.     ]
  309.     uint32 ActualType;
  310. };
  311.  
  312.  
  313.  
  314.  
  315.