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.

  1. 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.
  2. 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.
  3. Call IUnknown::QueryInterface for an ICcBootstrap object.
  4. Call ICcBootstrap::Download.
    This downloads the requested files to a target device.
    You can repeat step 4 an unlimited number of times.
  5. 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.

See Also

Reference

Download Interfaces

Concepts

Kernel Download Services
Application Download Services