Using the ICcBootstrap Interface (Windows Embedded CE 6.0)
1/5/2010
ICcBootstrap enables downloading a run-time image, an application, or a collection of files to a target device.
The bootstrap interface supports the following functionality:
- Flashing a target device with a run-time image
- Gathering information such as OS version and CPU information
In addition, for application downloading, ICcBootstrap supports downloading application files and launching an application on a target device.
You can load a download service directly using the COM activation call CoCreateInstance, or instantiate a kernel download service with ICcSvcHost::GetService.
If you instantiate a download service using ICcSvcHost, the download service remains loaded in the service host process until the lock count for the service, controlled through ICcService::LockService and ICcService::UnlockService, is greater than 0.
If you activate a download service directly using a COM call, the service remains in the client process space until the reference count for the object equals 0.
The following steps show a typical process for using a download service. This process assumes that the client has implemented the ICcService interface through the service host, or that the client created an instance of the service directly with COM.
- Call ICcService::Initialize.
This initializes the target device ID associated with the service. The download service uses the target device ID to query for properties from the datastore. - Call ICcService::Connect.
This establishes a connection between the desktop download service and a target device. For example, if you use the Ethernet Kernel Download service, calling ICcService::Connect ensures that the service has the target device IP address. - Call IUnknown::QueryInterface for an ICcBootstrap object.
- Call ICcBootstrap::Download.
This downloads the requested files to a target device.
You can repeat step 4 an unlimited number of times. - Call ICcService::UnlockService.
This releases the service interface. If there are no other references to this service, the service object is deleted and subsequent calls to ICcSvcHost::GetService create new instances of this service.