Using Enhanced Storage
The following sections outline the steps required to accomplish common Enhanced Storage tasks:
- Discover and Enumerate Enhanced Storage Devices, ACTs, and Silos
- Invoke an Enhanced Storage Portable Device Command
- Related topics
Discover and Enumerate Enhanced Storage Devices, ACTs, and Silos
Before calling any of the following methods for device, ACT, and silo enumeration, an IEnumEnhancedStorageACT interface must be created. Once initialized, the following methods should be called in the following order for complete enumeration:
Method | Description | |
---|---|---|
1 | IEnumEnhancedStorageACT::GetACTs | Enumerate all ACTs. |
2 | IEnhancedStorageACT::GetSilos | Enumerate all silos associated with an ACT. |
3 | IEnhancedStorageSilo::GetInfo | Retrieve descriptive information from a specific silo. |
Invoke an Enhanced Storage Portable Device Command
Once enumerated, silo specific operations are supported through the IEnhancedStorageSilo interface. More specifically, this interface allows raw silo commands to be sent to a portable device. The following table outlines the steps required to configure and send commands after the desired silo has been discovered:
Operation | Description | |
---|---|---|
1 | IEnhancedStorageSilo::GetPortableDevice | Retrieve IPortableDevice interface. |
2 | IPortableDeviceValues | Set command parameters. |
3 | IPortableDevice::SendCommand | Invoke the Enhanced Storage Portable Device command. |
4 | IPortableDevice | Use 'get' methods to check status and retrieve return values. |
A complete Enhanced Storage enumeration tool is provided as a sample in the Windows 7 SDK. The EnStorEnumerator sample demonstrates how to discover an Enhanced Storage device and send Portable Device commands to the IEEE 1667 certificate and password silo drivers.
Related topics