Represents a logical grouping of physical disks that may be used to create virtual disks. These virtual disks can be created with different characteristics and levels of resiliency based on the number of available physical disks and the capabilities of the storage pool.
{'Description':'This parameter controls the asynchronous behavior the method will follow.If TRUE, this method will make use of the CreatedStorageJob out parameter when the request is taking a long time to service. If a storage job has been created to track the operation, this method will return 4096 - 'Method Parameters Checked - Job Started'. Note, even if RunAsJob is TRUE, the method can still return a result if it has finished in sufficient time. If FALSE or NULL, this method will follow default WMI asynchronous behavior as determined by the client's method for invocation (i.e. synchronous unless requested otherwise).','In':True}
{'Description':'If RunAsJob is set to TRUE and this method takes a while to execute, this parameter returns a reference to the storage job used to track the long running operation.','Out':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method will add one or more physical disks from the primordial storage pool to an existing concrete storage pool.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Method Parameters Checked - Job Started', 'Access denied', 'There are not enough resources to complete the operation.', 'Cache out of date', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'One of the physical disks specified is not supported by this operation.', 'One of the physical disks specified is already in use.', 'One of the physical disks specified uses a sector size that is not supported by this storage pool.']
{'Description':'Friendly name of the storage tier','In':True}
MediaType
uint16
1
✓
-
{'Description':'Media type of the storage tier','In':True,'Values':['HDD', 'SSD']}
Description
string
2
✓
-
{'Description':'Description of the storage tier','In':True}
RunAsJob
boolean
3
✓
-
{'Description':'This parameter controls the asynchronous behavior the method will follow.If TRUE, this method will make use of the CreatedStorageJob out parameter when the request is taking a long time to service. If a storage job has been created to track the operation, this method will return 4096 - 'Method Parameters Checked - Job Started'. Note, even if RunAsJob is TRUE, the method can still return a result if it has finished in sufficient time. If FALSE or NULL, this method will follow default WMI asynchronous behavior as determined by the client's method for invocation (i.e. synchronous unless requested otherwise).','In':True}
{'Description':'If RunAsJob is set to TRUE and this method takes a while to execute, this parameter returns a reference to the storage job used to track the long running operation.','Out':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'Creates a storage tier template on the storage pool. This method is available only when the SupportsStorageTierCreation property on the storage subsystem is set to TRUE. If it is set to FALSE, this method will fail with MI_RESULT_NOT_SUPPORTED. This method is also not supported for primordial pools.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'The storage pool could not complete the operation because its configuration is read-only.']
CreateStorageTier method is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
{'Description':'This parameter allows the user to specify the FriendlyName at the time of the virtual disk creation. FriendlyNames are expected to be descriptive, however they are not required to be unique. Note that some storage subsystems do not allow setting a friendly name during virtual disk creation. If a subsystem doesn't support this, virtual disk creation should still succeed, however the disk may have a different name assigned to it.','In':True}
Size
uint64
1
✓
-
{'Description':'Indicates the size for the virtual disk. Note that some storage subsystems will round the size up or down to a multiple of its allocation unit size. This parameter cannot be used if UseMaximumSize is set to TRUE.','In':True,'Units':'Bytes'}
UseMaximumSize
boolean
2
✓
-
{'Description':'UseMaximumSize instructs the storage array to create the largest possible virtual disk given the available resources of this storage pool. This parameter cannot be used if the Size parameter is set.','In':True}
ProvisioningType
uint16
3
✓
-
{'Description':'Denotes the provisioning type of the virtual disk. 1 - 'Thin': The storage for the virtual disk is allocated on-demand. 2 - 'Fixed': The storage for the virtual disk is allocated up front.','In':True,'Values':['Thin', 'Fixed']}
ResiliencySettingName
string
4
✓
-
{'Description':'This parameter specifies the resiliency setting to use as a template for this virtual disk. This property's value should correspond with the particular resiliency setting instance's Name property. Only resiliency settings associated with this storage pool may be used.','In':True}
Usage
uint16
5
✓
-
{'Description':'Denotes the intended usage of the virtual disk','In':True,'Values':['Other', 'Unrestricted', 'Reserved for ComputerSystem (the block server)', 'Reserved by Replication Services', 'Reserved by Migration Services', 'Local Replica Source', 'Remote Replica Source', 'Local Replica Target', 'Remote Replica Target', 'Local Replica Source or Target', 'Remote Replica Source or Target', 'Delta Replica Target', 'Element Component', 'Reserved as Pool Contributor', 'Composite Volume Member', 'Composite VirtualDisk Member', 'Reserved for Sparing']}
OtherUsageDescription
string
6
✓
-
{'Description':'Allows a user to set a vendor specific usage for the new virtual disk object. This parameter can only be specified if the Usage parameter is set to 1 - 'Other'.','In':True}
NumberOfDataCopies
uint16
7
✓
-
{'Description':'Specifies the number of complete data copies to maintain for this virtual disk. If specified, this value will override the NumberOfDataCopiesDefault value that would have been inherited from the resiliency setting specified by ResiliencySettingName.','In':True}
PhysicalDiskRedundancy
uint16
8
✓
-
{'Description':'Specifies how many physical disk failures the virtual disk should be able to withstand before data loss occurs. If specified, this value will override the PhysicalDiskRedundancyDefault value that would have been inherited from the resiliency setting specified by ResiliencySettingName.','In':True}
NumberOfColumns
uint16
9
✓
-
{'Description':'Specifies the number of underlying physical disks across which data should be striped. If specified, this value will override the NumberOfColumnsDefault value that would have been inherited from the resiliency setting specified by ResiliencySettingName.','In':True}
AutoNumberOfColumns
boolean
10
✓
-
{'Description':'If TRUE, this field instructs the storage provider (or subsystem) to automatically pick what it determines to be the best number of columns for the virtual disk. If this field is TRUE, then the NumberOfColumns parameter must be NULL.','In':True}
Interleave
uint64
11
✓
-
{'Description':'Specifies the number of bytes that should be used for a strip in the common striping-based resiliency settings. The strip is defined as the size of the portion of a stripe that lies on one physical disk. Thus Interleave * NumberOfColumns will yield the size of one stripe of user data. If this parameter is specified, this value will override the InterleaveDefault which would have been inherited from the resiliency setting specified by ResiliencySettingName.','In':True}
IsEnclosureAware
boolean
12
✓
-
{'Description':'Determines the allocation behavior for this virtual disk. Enclosure aware virtual disks will intelligently pick the physical disks to use for their redundancy. If TRUE, the virtual disk will attempt to use physical disks from different enclosures to balance the fault tolerance between two (or more) physical enclosures.','In':True}
{'Description':'If specified, allocation of this virtual disk's storage is limited to the physical disks in the list. These physical disks must already be added to this storage pool.','In':True}
{'Description':'Storage tiers on this virtual disk','In':True}
StorageTierSizes
uint64
15
✓
-
{'Description':'Sizes of each tier','In':True}
WriteCacheSize
uint64
16
✓
-
{'Description':'Size of write cache on the virtual disk','In':True}
AutoWriteCacheSize
boolean
17
✓
-
{'Description':'Indicates whether the provider should pick up the auto write cache size','In':True}
RunAsJob
boolean
18
✓
-
{'Description':'This parameter controls the asynchronous behavior the method will follow.If TRUE, this method will make use of the CreatedStorageJob out parameter when the request is taking a long time to service. If a storage job has been created to track the operation, this method will return 4096 - 'Method Parameters Checked - Job Started'. Note, even if RunAsJob is TRUE, the method can still return a result if it has finished in sufficient time. If FALSE or NULL, this method will follow default WMI asynchronous behavior as determined by the client's method for invocation (i.e. synchronous unless requested otherwise).','In':True}
{'Description':'If RunAsJob is set to TRUE and this method takes a while to execute, this parameter returns a reference to the storage job used to track the long running operation.','Out':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method creates a virtual disk using the resources of the storage pool. This method is available only when the SupportsVirtualDiskCreation property on the storage subsystem is set to TRUE. If it is set to FALSE, this method will fail with MI_RESULT_NOT_SUPPORTED. This method is also not supported for primordial pools. Creating tiered virtual disks is available only when the SupportsStorageTieredVirtualDiskCreation property on the storage subsystem is set to TRUE. If it is set to FALSE, this method will fail with MI_RESULT_NOT_SUPPORTED. CreateVirtualDisk requires only FriendlyName and Size to be specified. Sizes can be specified explicitly through the Size parameter, or you can use the maximum available space from the storage pool by specifying the UseMaximumSize parameter. Both FriendlyName and Size are treated as goals rather than hard requirements. For example, not all SMI-S based arrays support custom friendly names; however, the virtual disk creation will still succeed. If the size specified is not achieved, the actual size used for the virtual disk will be returned in the out parameter structure. The usage of this virtual disk can be set using the Usage and OtherUsageDescription parameters. If a value for OtherUsageDescription is given, Usage must be set to 1 - 'Other', otherwise an error will be returned. By default, the resiliency setting applied to this virtual disk will be whatever is specified in the storage pool's ResiliencySettingNameDefault property. This can be overridden using the ResiliencySettingName parameter. Note that the name given here must correspond to a resiliency setting associated with this storage pool. Any other value will result in an error. Individual settings of the resiliency setting can be overridden using the NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns, and Interleave parameters. If these parameters are not used, the defaults from the resiliency setting will be used. These overrides will not persist back to the particular resiliency setting instance; however some storage providers may choose to create a new resiliency setting instance to capture this new configuration. If any of the goals specified in the override parameters are out of range, or are not supported by the storage pool, an error will be returned. The provisioning policy for the virtual disk is determined in a similar way to the resiliency setting. If no preference is specified in the ProvisioningType parameter, the policy is determined by the storage pool's ProvisioningTypeDefault property. If the ProvisioningType parameter is specified, the default is ignored and the value specified will be used instead. Allocation can be further controlled by the PhysicalDisksToUse parameter. There may be certain scenarios where a storage administrator wants to manually choose which physical disks should back the virtual disk. When this parameter is specified, data for the virtual disk will only be stored on the physical disks in this array and not on any others.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Method Parameters Checked - Job Started', 'Size Not Supported', 'Not enough available capacity', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'Failover clustering could not be enabled for this storage object.', 'This subsystem does not support creation of virtual disks with the specified provisioning type.', 'This operation is not supported on primordial storage pools.', 'The storage pool is reserved for special usage only.', 'The specified resiliency setting is not supported by this storage pool.', 'There are not enough eligible physical disks in the storage pool to create the specified virtual disk configuration.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'You must specify the size info (either the Size or UseMaximumSize parameter) or the tier info (the StorageTiers and StorageTierSizes parameters), but not both size info and tier info.', 'No resiliency setting with that name exists.', 'The value for NoSinglePointOfFailure is not supported.', 'The value for PhysicalDiskRedundancy is outside of the supported range of values.', 'The value for NumberOfDataCopies is outside of the supported range of values.', 'The value for ParityLayout is outside of the supported range of values.', 'The value for Interleave is outside of the supported range of values.', 'The value for NumberOfColumns is outside of the supported range of values.', 'The value for WriteCacheSize is outside of the supported range of values.', 'One of the physical disks specified is not supported by this operation.', 'Not enough physical disks were specified to successfully complete the operation.']
{'Description':'This parameter allows the user to specify the FriendlyName at the time of the volume creation. FriendlyNames are expected to be descriptive, however they are not required to be unique. The filesystem's label will also be set to this friendly name.','In':True}
Size
uint64
1
✓
-
{'Description':'Indicates the size for the virtual disk. Note that some storage subsystems will round the size up or down to a multiple of its allocation unit size. The size of the resulting volume will be the maximum size possible for the resulting virtual disk.','In':True,'Units':'Bytes'}
{'Description':'Storage tiers on this virtual disk','In':True}
StorageTierSizes
uint64
3
✓
-
{'Description':'Sizes of each tier','In':True}
ProvisioningType
uint16
4
✓
-
{'Description':'Denotes the provisioning type of the volume. 1 - 'Thin': The storage for the volume is allocated on-demand. 2 - 'Fixed': The storage for the volume is allocated up front.','In':True,'Values':['Thin', 'Fixed']}
ResiliencySettingName
string
5
✓
-
{'Description':'This parameter specifies the resiliency setting to use as a template for this volume. This property's value should correspond with the particular resiliency setting instance's Name property. Only resiliency settings associated with this storage pool may be used.','In':True}
PhysicalDiskRedundancy
uint16
6
✓
-
{'Description':'Specifies how many physical disk failures the virtual disk should be able to withstand before data loss occurs. If specified, this value will override the PhysicalDiskRedundancyDefault which would have been inherited from the resiliency setting specified by ResiliencySettingName.','In':True}
NumberOfColumns
uint16
7
✓
-
{'Description':'Specifies the number of underlying physical disks across which data should be striped. If specified, this value will override the NumberOfColumnsDefault value that would have been inherited from the resiliency setting specified by ResiliencySettingName.','In':True}
FileSystem
uint16
8
✓
-
{'Description':'Specifies the file system to format the created volume. Specifying a CSV file system is only supported on a storage spaces subsystem. For CSV the pool must be clusterable and the volume created will be a cluster shared volume.','In':True,'Values':['NTFS', 'ReFS', 'CSVFS_NTFS', 'CSVFS_ReFS']}
AccessPath
string
9
✓
-
{'Description':'If set to a valid access path, the system will attempt to use this path as a way to access the local volume. If the access path could not be set, or this parameter was left NULL, a new access path will be automatically assigned.','In':True}
{'Description':'This parameter controls the asynchronous behavior the method will follow.If TRUE, this method will make use of the CreatedStorageJob out parameter when the request is taking a long time to service. If a storage job has been created to track the operation, this method will return 4096 - 'Method Parameters Checked - Job Started'. Note, even if RunAsJob is TRUE, the method can still return a result if it has finished in sufficient time. If FALSE or NULL, this method will follow default WMI asynchronous behavior as determined by the client's method for invocation (i.e. synchronous unless requested otherwise).','In':True}
{'Description':'If RunAsJob is set to TRUE and this method takes a while to execute, this parameter returns a reference to the storage job used to track the long running operation.','Out':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method creates a virtual disk and single volume using the resources of the storage pool.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Method Parameters Checked - Job Started', 'Size Not Supported', 'Not enough available capacity', 'Access denied', 'There are not enough resources to complete the operation.', 'An unexpected I/O error has occurred', 'You must specify a size by using either the Size or the UseMaximumSize parameter. You can specify only one of these parameters at a time.', 'The requested access path is already in use.', 'The access path is not valid.', 'The specified file system is not supported', 'The volume cannot be quick formatted', 'Cannot perform the requested operation when the drive is read only', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'Failover clustering could not be enabled for this storage object.', 'This operation is not supported on primordial storage pools.', 'The storage pool is reserved for special usage only.', 'The specified resiliency setting is not supported by this storage pool.', 'There are not enough eligible physical disks in the storage pool to create the specified virtual disk configuration.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'You must specify the size info (either the Size or UseMaximumSize parameter) or the tier info (the StorageTiers and StorageTierSizes parameters), but not both size info and tier info.', 'No resiliency setting with that name exists.', 'The value for NoSinglePointOfFailure is not supported.', 'The value for PhysicalDiskRedundancy is outside of the supported range of values.', 'The value for NumberOfDataCopies is outside of the supported range of values.', 'The value for ParityLayout is outside of the supported range of values.', 'The value for Interleave is outside of the supported range of values.', 'The value for NumberOfColumns is outside of the supported range of values.']
CreateVolume method is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
{'Description':'This parameter controls the asynchronous behavior the method will follow.If TRUE, this method will make use of the CreatedStorageJob out parameter when the request is taking a long time to service. If a storage job has been created to track the operation, this method will return 4096 - 'Method Parameters Checked - Job Started'. Note, even if RunAsJob is TRUE, the method can still return a result if it has finished in sufficient time. If FALSE or NULL, this method will follow default WMI asynchronous behavior as determined by the client's method for invocation (i.e. synchronous unless requested otherwise).','In':True}
{'Description':'If RunAsJob is set to TRUE and this method takes a while to execute, this parameter returns a reference to the storage job used to track the long running operation.','Out':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method deletes an empty storage pool. If the storage pool contains any virtual disks, these virtual disks should be removed first.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Method Parameters Checked - Job Started', 'Access denied', 'There are not enough resources to complete the operation.', 'Cache out of date', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'The storage pool contains virtual disks.']
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method returns the security descriptor that controls access to this specific object instance.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.']
{'Description':'Specifies the name of the resiliency setting that should be used when determining the supported sizes. Note that the sizes returned may be different depending on the resiliency setting.','In':True}
SupportedSizes
uint64
1
-
✓
{'Description':'This output parameter will contain an array of all of the supported sizes by the storage pool. This parameter may be NULL if the number of supported sizes is large, but is useful for storage pools that support only a select number of virtual disk sizes.','Out':True,'Units':'Bytes'}
VirtualDiskSizeMin
uint64
2
-
✓
{'Description':'This parameter denotes the minimum supported size that a virtual disk created in this pool can be.','Out':True,'Units':'Bytes'}
VirtualDiskSizeMax
uint64
3
-
✓
{'Description':'This parameter denotes the maximum supported size that a virtual disk created in this pool can be.','Out':True,'Units':'Bytes'}
VirtualDiskSizeDivisor
uint64
4
-
✓
{'Description':'This parameter indicates the interval in which the supported sizes increment. For example: If the minimum supported size is 10 GB, and this parameter is 2 GB, then the supported sizes for this pool would be 10 GB, 12 GB, 14 GB, etc. until the maximum supported size is reached.','Out':True,'Units':'Bytes'}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method returns the supported sizes for a virtual disk created on this storage pool. These sizes can either be returned in an array of all supported sizes, through a min, max, and divisor, or both.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cache out of date', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.']
{'Description':'This parameter controls the asynchronous behavior the method will follow.If TRUE, this method will make use of the CreatedStorageJob out parameter when the request is taking a long time to service. If a storage job has been created to track the operation, this method will return 4096 - 'Method Parameters Checked - Job Started'. Note, even if RunAsJob is TRUE, the method can still return a result if it has finished in sufficient time. If FALSE or NULL, this method will follow default WMI asynchronous behavior as determined by the client's method for invocation (i.e. synchronous unless requested otherwise).','In':True}
{'Description':'If RunAsJob is set to TRUE and this method takes a while to execute, this parameter returns a reference to the storage job used to track the long running operation.','Out':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method removes one or more physical disks from the pool and returns all previously allocated space on the disk to the available capacity in the primordial pool.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Method Parameters Checked - Job Started', 'Not enough available capacity', 'Access denied', 'There are not enough resources to complete the operation.', 'Cache out of date', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'Could not repair the virtual disk because too many physical disks failed. Not enough information exists on the remaining physical disks to reconstruct the lost data.', 'The virtual disk could not complete the operation because its health or operational status does not permit it.', 'One of the physical disks specified could not be removed because it is still in use.']
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method allows the user to update or set various attributes on the storage pool. Note that not all parameters must be specified, and only those given will be updated.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'The number of thin provisioning alert thresholds specified exceeds the limit for this storage pool.']
{'Description':'Specifies the new default provisioning type of the storage pool.','In':True,'Values':['Thin', 'Fixed']}
ResiliencySettingNameDefault
string
1
✓
-
{'Description':'Specifies the new default resiliency setting that should be used by this storage pool. The resiliency setting specified must already be associated with this storage pool.','In':True}
EnclosureAwareDefault
boolean
2
✓
-
{'Description':'This parameter indicates the default allocation policy for virtual disks created in an enclosure aware storage pool. For example, an enclosure aware subsystem could balance each data copy of the virtual disk across multiple physical enclosures such that each enclosure contains a full data copy of the virtual disk.','In':True}
WriteCacheSizeDefault
uint64
3
✓
-
{'Description':'New default size of write cache for virtual disk creation','In':True}
AutoWriteCacheSize
boolean
4
✓
-
{'Description':'Indicates whether the provider should pick up the auto write cache size','In':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method allows the user to update or set various defaults on the storage pool. Note that not all parameters must be specified, and only those given will be updated.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.', 'The specified resiliency setting is not supported by this storage pool.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.', 'No resiliency setting with that name exists.', 'The value for WriteCacheSize is outside of the supported range of values.']
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method allows the storage pool to be renamed.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.']
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method allows a user with sufficient privileges to set the security descriptor that control access to this specific object instance. If the call is not made in the context of a user specified in the security descriptor's access control list, this method will fail with 40001 - 'Access Denied'. If an empty security descriptor is passed to this function, the behavior is left to the specific implementation so long as there is some user context (typically domain administrators) that can access and administer the object.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.']
{'Description':'Denotes the new intended usage of the storage pool.','In':True,'Values':['Other', 'Unrestricted', 'Reserved for ComputerSystem (the block server)', 'Reserved as a Delta Replica Container', 'Reserved for Migration Services', 'Reserved for Local Replication Services', 'Reserved for Remote Replication Services', 'Reserved for Sparing']}
OtherUsageDescription
string
1
✓
-
{'Description':'If Usage is set to 1 - 'Other', this parameter takes in the string representation of a vendor defined usage for this storage pool. This parameter must not be set if Usage is a value other than 1 - 'Other'.','In':True}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method allows the storage pool's intended usage to be updated. Not all storage pools may allow this and will return 1 - 'Not Supported' if this operation cannot be performed.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'This operation is not supported on primordial storage pools.', 'The storage pool could not complete the operation because its health or operational status does not permit it.', 'The storage pool could not complete the operation because its configuration is read-only.']
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method will upgrade the version of the storage pool.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'Access denied', 'There are not enough resources to complete the operation.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'The storage pool could not complete the operation because its configuration is read-only.']
Upgrade method is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 5 namespaces
Detailed description of MSFT_StoragePool properties
'Indicates the total sum of all the capacity used by this storage pool. If the pool is primordial, this will be the sum of all capacity currently allocated to concrete storage pools. If the pool is concrete, this value should be the sum of all capacity currently allocated to virtual disks and other pool metadata.'
'Determines the default allocation behavior for virtual disks created in this pool. Enclosure aware virtual disks will intelligently pick the physical disks to use for their redundancy. If TRUE, the storage subsystem will use physical disks from different enclosures to balance the fault tolerance between two (or more) physical enclosures.'
EnclosureAwareDefault property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'Denotes the current health status of the storage pool. Health of a storage pool is derived from the health of the backing physical disks, and whether or not the storage pool can maintain the required levels of resiliency. 0 - 'Healthy': All physical disks are present and in a healthy state. 1 - 'Warning': The majority of physical disks are healthy, but one or more may be failing I/O requests. 2 - 'Unhealthy': The majority of physical disks are unhealthy or in a failed state, and the pool no longer has data integrity.'
'This property indicates whether the disks comprising this pool are able to tolerate power loss without data loss, e.g. automatically flush volatile buffers to non-volatile media after external power is disconnected.'
IsPowerProtected property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'If this field is set to TRUE, the storage pool is primordial. A primordial pool, also known as the 'available storage' pool is where storage capacity is drawn and returned in the creation and deletion of concrete storage pools. Primordial pools cannot be created or deleted. If this field is set to FALSE, the storage pool is a concrete pool. These pools are subject to all of the management operations defined on the storage pool class. This includes creation, deletion, creation of virtual disks, etc.'
IsPrimordial property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'Indicates whether or not the storage pool's configuration is read-only. If TRUE, the storage pool will not allow configuration changes to itself or any of its virtual and physical disks. Note that the data on the virtual disk may still be writable.'
IsReadOnly property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 6 namespaces
'This field indicates the logical sector size of the storage pool, in bytes. This value is derived from the backing physical disks, as well as the preference specified at the time this storage pool was created.'
'Indicates the current operating conditions of the storage pool. Unlike HealthStatus, this field indicates the status of hardware, software, and infrastructure issues related to this storage pool, and can contain multiple values. Various operational statuses are defined. Many of the enumeration's values are self-explanatory. However, a few are not and are described here in more detail. 4 - 'Stressed': indicates that the storage pool is functioning, but needs attention. Examples of 'Stressed' states are overload, overheated, and so on. 5 - 'Predictive Failure': indicates that the storage pool is functioning nominally but predicting a failure in the near future. 11 - 'In Service': describes a storage pool being configured, maintained, or otherwise administered. 12 - 'No Contact': indicates that the storage provider has knowledge of this storage pool, but has never been able to establish communications with it. 13 - 'Lost Communication': indicates that the storage pool is known to exist and has been contacted successfully in the past, but is currently unreachable. 10 - 'Stopped' and 14 - 'Aborted' are similar, although the former implies a clean and orderly stop, while the latter implies an abrupt stop where the state and configuration of the storage pool might need to be updated. 15 - 'Dormant': indicates that the storage pool is inactive. 16 - 'Supporting Entity in Error': indicates that this storage pool might be OK, but that another element, on which it is dependent, is in error. '
'If Usage is set to 1 - 'Other', this field contains the string representation of the vendor defined usage for the storage pool. This property must be NULL if Usage is not set to 1 - 'Other'.'
'This field indicates the physical sector size of the storage pool, in bytes. This value is derived from the backing physical disks for this storage pool.'
'Indicates the provisioning scheme to use when creating new virtual disks on this storage pool. 0 - 'Unknown': May mean that this information is unavailable, or the storage pool uses a proprietary method of allocation. 1 - 'Thin': Storage for the virtual disk is allocated on-demand. 2 - 'Fixed': Storage for the virtual disk is allocated at the time of virtual disk creation.'
Values
['Unknown', 'Thin', 'Fixed']
ProvisioningTypeDefault property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'Denotes the reason why the storage pool is read-only. 1 - 'None': The pool is not read-only. 2 - 'By Policy': The administrator has either requested the pool to be read-only or has enacted a policy on the system that requires the pool to be read-only. 3 - 'Majority Disks Unhealthy': The majority of the supporting physical disks are in an unhealthy state that has forced the storage pool into a read-only state.'
'This property indicates how the operating system will proceed with repairing of virtual disks for this storage pool. 2 - 'Sequential': repair will process one allocation slab at a time. This will result in longer repair times, but small impact on the I/O load. 3 - 'Parallel': repair will process as many allocation slabs as it can in parallel. This will result in the shortest repair time, but will have significant impact on I/O load. '
Values
['Sequential', 'Parallel']
RepairPolicy property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'Indicates the default resiliency setting used for virtual disk creation. This default can be overridden at the time of virtual disk creation. This property's value should correspond to the resiliency setting's Name field.'
ResiliencySettingNameDefault property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'If TRUE, the storage subsystem will automatically retire missing physical disks in this storage pool and replace them with hot-spares or other available physical disks (in the storage pool).'
Values
['Auto', 'Always', 'Never']
RetireMissingPhysicalDisks property is in 1 class (MSFT_StoragePool) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
'Indicates the capacity of the storage pool. If the pool is primordial, this is the sum of all the healthy physical disk sizes. If the pool is concrete, this is the sum of all associated physical disks (except hot-spares, and including failed drives).'
['Unknown', 'Other', 'Unrestricted', 'Reserved for ComputerSystem (the block server)', 'Reserved as a Delta Replica Container', 'Reserved for Migration Services', 'Reserved for Local Replication Services', 'Reserved for Remote Replication Services', 'Reserved for Sparing']
'ObjectId is a mandatory property that is used to opaquely and uniquely identify an instance of a class. ObjectIds must be unique within the scope of the management server (which is hosting the provider). The ObjectId is created and maintained for use of the Storage Management Providers and their clients to track instances of objects. If an object is visible through two different paths (for example: there are two separate Storage Management Providers that point to the same storage subsystem) then the same object may appear with two different ObjectIds. For determining if two object instances are the same object, refer to the UniqueId property.'
'PassThroughIds is a comma-separated list of all implementation specific keys. It is used by storage management applications to access the vendor proprietary object model. This field should be in the form: key1='value1',key2='value2'.'
'UniqueId is a mandatory property that is used to uniquely identify a logical instance of a storage subsystem's object. This value must be the same for an object viewed by two or more provider instances (even if they are running on seperate management servers). UniqueId can be any globally unique, opaque value unless otherwise specified by a derived class.'
'Represents a logical grouping of physical disks that may be used to create virtual disks. These virtual disks can be created with different characteristics and levels of resiliency based on the number of available physical disks and the capabilities of the storage pool.'