IWMDMDevice3::FindStorage

banner art

The FindStorage method finds a storage by its persistent unique identifier. Unlike other methods, this method can search recursively from the root storage.

Syntax

HRESULT FindStorage(WMDM_FIND_SCOPEfindScope,LPCWSTRpwszUniqueID,IWMDMStorage**ppStorage);

Parameters

findScope

[in]  A WMDM_FIND_SCOPE enumeration specifying the scope of the find operation.

pwszUniqueID

[in]  A wide character, null-terminated string representing a persistent unique identifier of the storage, which can be retrieved by querying for the g_wszWMDMPersistentUniqueID property of the storage.

ppStorage

[out]  Pointer to the returned storage. The caller must release this interface when done with it.

Return Values

The method returns an HRESULT. All the interface methods in Windows Media Device Manager can return any of the following classes of error codes:

  • Standard COM error codes
  • Windows error codes converted to HRESULT values
  • Windows Media Device Manager error codes

For an extenstive list of possible error codes, see Error Codes.

Possible values include, but are not limited to, those in the following table. If the method fails with an error, it returns a standard error code.

Return code Description
S_OK The method succeeded.
E_INVALIDARG The findScope parameter is invalid, or pwszUniqueID or ppStorage is NULL.
E_NOTIMPL Legacy devices and non-MTP devices do not implement this method.
E_PROP_ID_UNSUPPORTED (0x80070490) The storage was not found.

Remarks

A persistent unique identifier is used to uniquely identify content stored on a particular device. It does not represent a content-specific globally unique identifier that remains identical across all devices. Thus, the same content stored in different storages will have different persistent unique identifiers. Similarly, different content can have same persistent unique identifier when it is stored on different devices. Using the analogy of content on a device being similar to rows in a database, this property serves the same purpose as the identity column serves in a database.

Because it is generated by the device, the format of the persistent unique identifier is device-dependent. The application should get the persistent unique identifier by querying the g_wszWMDMPersistentUniqueID property of the storage. An application can use the GetSpecifiedMetadata or GetMetadata methods to query this property.

Requirements

Header: Defined in mswmdm.h.

Library: mssachlp.lib

See Also