Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.8 KiB

  1. GENERATE SELF-EXTRACTING EXECUTABLE
  2. -----------------------------------
  3. This directory contains the files necessary for performing the generation
  4. of the self-extracting-executable. The main entry-point is GenerateCAB(),
  5. which in turn manipulates INF and CDF objects,
  6. gencab - CAB control module.
  7. geninf - INF object methods.
  8. gencdf - CDF object methods.
  9. This design has seperated responsibilities of the various components into
  10. object-type modules. For example, anything which has to do with an INF-file
  11. is handled in the (geninf.c/geninf.h) modules. Likewise, the CDF routines
  12. use an INF interface to obtain information concerning the INF. Previous
  13. implementations of which this code was derived, utilized a monolithic approach
  14. where the CDF, INF and CAB routines had integral knowledge of each others
  15. functionality.
  16. We diverged from this approach to a more object-oriented design which we
  17. believe is more maintainable and somewhat self-documenting.
  18. Structure/Flow:
  19. cab:
  20. if (Create INF Object) {
  21. if (Create CDF Object) {
  22. query CDF, INF objects for pertinent information.
  23. if (CDF newer than CAB) {
  24. Execute IExpress to generate new cab.
  25. } else {
  26. utilize cached cabname.
  27. }
  28. Free CDF Object.
  29. }
  30. Free INF Object.
  31. }
  32. return cabname.
  33. Issues:
  34. -------
  35. 1) How do we determine op-sys versioning and archetecture? We need this
  36. to determine where to pull our INF driver-files. This should be passed
  37. in at GenerateCAB() time.
  38. 2) Generating an INF (to be or not to be)...although not huge, this could
  39. change our implementating of caching of the CDF/CAB files. Currently,
  40. we will generate a layout-file (sort of).