{'Description':'This field denotes the level (or depth) of discovery that should be performed. This parameter can only be specified if the root object is a storage provider, storage subsystem, or NULL. When specified, the storage provider will discover objects starting from Level 0 and continuing until the specified level is reached. Associations between objects (within the discovered levels) will also be discovered. The discovery levels are defined as follows: 0 - 'Level 0': The storage provider and storage subsystem objects will be discovered. 1 - 'Level 1': Storage pools, resiliency settings, target ports, target portals, and initiator ids will be discovered.2 - 'Level 2': Virtual disks and masking sets will be discovered.3 - 'Level 3': Physical disks will be discovered.','In':True,'Values':['Level 0', 'Level 1', 'Level 2', 'Level 3']}
{'Description':'If this parameter is set, discovery will begin from this object. When DiscoveryLevel is NULL, well-defined actions will be taken depending on the type of object specified by RootObject: Storage subsystem: All associated objects will be discovered. Storage pool: The pool, along with any associated resiliency settings, virtual disks, and physical disks will be discovered. Masking set: The masking set, along with any associated target ports, initiator ids, and virtual disks will be discovered. For all other objects: Only that object will be discovered / refreshed.','In':True}
RunAsJob
boolean
2
✓
-
{'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 is used when a user wants to explicitly discover or re-enumerate objects owned by the storage provider. A call to this method could result in a full or partial cache invalidation and over-the-wire calls to the storage subsystem(s) in order to discover new or updated objects. As this is a time consuming task, it should be used sparingly by the user. The scope of the discovery operation is controlled by the DiscoveryLevel and RootObject parameters. DiscoveryLevel controls the depth of the object discovery. RootObject defines the starting point from which discovery will happen.'
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.', 'Cannot connect to the storage provider.', 'The storage provider cannot connect to the storage subsystem.', 'The storage provider does not support a required profile.', 'The storage provider does not support a required association.']
Discover method is in 1 class (MSFT_StorageProvider) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
{'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':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method registers a subsystem to be managed by this provider. Note that the subsystem must be compatible with the provider software.'
Values
['Success', 'Not Supported', 'Unspecified Error', 'Timeout', 'Failed', 'Invalid Parameter', 'In Use', '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.', 'Cannot register/unregister the storage subsystem on local host.', 'This subsystem is already registered.']
RegisterSubsystem method is in 1 class (MSFT_StorageProvider) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
{'Description':'If set to 3, caching for all the registered remote subsystem is enabled. If set to 2, caching for all the registered remote subsystem is disabled. This API only effects the remote subsystem registered and local Subsystem requests are not cached and reported live always.','In':True,'Values':['Disabled', 'Manual-Discovery']}
{'Description':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method sets the attributes of the provider.'
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':'ExtendedStatus allows the storage provider to return extended (implementation specific) error information.','Out':True}
Description
'This method unregisters a subsystem. The provider will no longer manage this subsystem.'
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.', 'Cannot register/unregister the storage subsystem on local host.', 'The storage subsystem is not registered.', 'This subsystem is already registered with another user's credentials. Use the -Force flag to remove the existing registration and add a new one anyway.']
UnregisterSubsystem method is in 1 class (MSFT_StorageProvider) of ROOT\Microsoft\Windows\Storage\ms_409 and in 3 namespaces
Detailed description of MSFT_StorageProvider properties
Local properties (10) of MSFT_StorageProvider class
'If the SMP is of type 2 - 'SMI-S', this field contains the protocol, computer host name, and port of the SMI-S server. This field will be NULL otherwise.'
URI property is in 1 class (MSFT_StorageProvider) of ROOT\Microsoft\Windows\Storage\ms_409 and in 7 namespaces
'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.'