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.

99 lines
2.6 KiB

  1. /******************************************************************************
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. fulpcall.h
  5. Abstract:
  6. protocol info used by CFaultUpload & server component
  7. Revision History:
  8. created derekm 03/22/00
  9. ******************************************************************************/
  10. #ifndef FULPCALL_H
  11. #define FULPCALL_H
  12. /////////////////////////////////////////////////////////////////////////////
  13. // client ops
  14. #define PCHFHO_YODUDE 0x0
  15. #define PCHFHO_CHECKSIG 0x1
  16. #define PCHFHO_DATA3 0x2
  17. #define PCHFHO_DATA0 0x3
  18. #define PCHFHO_OFFLINE0 0x4
  19. #define PCHFHO_OFFLINE3 0x5
  20. /////////////////////////////////////////////////////////////////////////////
  21. // server responses
  22. #define S_PCHFHR_YEAHMAN 0x0
  23. #define S_PCHFHR_SENDDATA 0x1
  24. #define S_PCHFHR_DONEDATA 0x2
  25. #define S_PCHFHR_DONE 0x3
  26. #define E_PCHFHR_BADPROVVER 0x80000000
  27. #define E_PCHFHR_INVALIDOP 0x80000001
  28. #define E_PCHFHR_INVALIDDATA 0x80000002
  29. #define E_PCHFHR_BADBLOBSIZE 0x80000003
  30. /////////////////////////////////////////////////////////////////////////////
  31. // structs
  32. #pragma pack(push, 8)
  33. // this is the header that gets sent with each message
  34. struct SPFFULHeader
  35. {
  36. DWORD dwVer;
  37. DWORD dwOpRes;
  38. DWORD cbBody;
  39. };
  40. // this is the 'table of contents' for a dataspec server response
  41. struct SPFFULDataspecTOC
  42. {
  43. DWORD dwSigUsed;
  44. DWORD dwIncID;
  45. };
  46. // this is the 'table of contents' for a signature upload
  47. struct SPFFULSigTOC
  48. {
  49. DWORD dwSigID;
  50. };
  51. // this is the 'table of contents' for a cab client upload
  52. struct SPFFULOnlineTOC
  53. {
  54. DWORD dwSigID;
  55. DWORD dwCabOffset;
  56. DWORD dwIncID;
  57. };
  58. // this is the 'table of contents' for an offline cab client upload
  59. struct SPFFULOfflineTOC
  60. {
  61. DWORD dwSigID;
  62. DWORD dwCabOffset;
  63. DWORD dwSigOffset;
  64. };
  65. #pragma pack(pop)
  66. /////////////////////////////////////////////////////////////////////////////
  67. // constants
  68. const DWORD c_cbBlobHeader = sizeof(SPFFULHeader);
  69. const DWORD c_cbDataspecHeader = sizeof(SPFFULDataspecTOC);
  70. const DWORD c_cbSigHeader = sizeof(SPFFULSigTOC);
  71. const DWORD c_cbOnlineHeader = sizeof(SPFFULOnlineTOC);
  72. const DWORD c_cbOfflineHeader = sizeof(SPFFULOfflineTOC);
  73. const DWORD c_cbTotalDataspecHeader = c_cbBlobHeader + c_cbDataspecHeader;
  74. const DWORD c_cbTotalSigHeader = c_cbBlobHeader + c_cbSigHeader;
  75. const DWORD c_cbTotalOnlineHeader = c_cbBlobHeader + c_cbOnlineHeader;
  76. const DWORD c_cbTotalOfflineHeader = c_cbBlobHeader + c_cbOfflineHeader;
  77. #endif