Leaked source code of windows server 2003
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.

132 lines
2.9 KiB

  1. /*++
  2. Copyright (c) Microsoft Corporation
  3. Module Name:
  4. spasmcabs.h
  5. Abstract:
  6. Author:
  7. Jay Krell (JayKrell) May 2002
  8. Revision History:
  9. --*/
  10. #pragma once
  11. NTSTATUS
  12. SpExtractAssemblyCabinets(
  13. //
  14. // so many parameters implies we should take them in a struct..
  15. //
  16. HANDLE SifHandle,
  17. IN PCWSTR SourceDevicePath, // \device\harddisk0\partition2
  18. IN PCWSTR DirectoryOnSourceDevice, // \$win_nt$.~ls
  19. IN PCWSTR SysrootDevice, // \Device\Harddisk0\Partition2
  20. IN PCWSTR Sysroot // \WINDOWS.2
  21. );
  22. //
  23. // The rest is private.
  24. //
  25. #if defined(SP_ASM_CABS_PRIVATE)
  26. typedef struct _SP_EXTRACT_ASMCABS_GLOBAL_CONTEXT SP_EXTRACT_ASMCABS_GLOBAL_CONTEXT, *PSP_EXTRACT_ASMCABS_GLOBAL_CONTEXT;
  27. typedef struct _SP_EXTRACT_ASMCABS_FDICOPY_CONTEXT SP_EXTRACT_ASMCABS_FDICOPY_CONTEXT, *PSP_EXTRACT_ASMCABS_FDICOPY_CONTEXT;
  28. typedef struct _SP_EXTRACT_ASMCABS_FILE_CONTEXT SP_EXTRACT_ASMCABS_FILE_CONTEXT, *PSP_EXTRACT_ASMCABS_FILE_CONTEXT;
  29. typedef struct _SP_ASMS_ERROR_INFORMATION SP_ASMS_ERROR_INFORMATION, *PSP_ASMS_ERROR_INFORMATION;
  30. //
  31. // This should take PCUNICODE_STRING and use Context to efficiently make a nul
  32. // terminated copy, but instead we nul terminate mostly as we go..
  33. //
  34. typedef VOID (CALLBACK * PSP_ASMCABS_FILE_OPEN_UI_CALLBACK)(PVOID Context, PCWSTR LeafCabFileName);
  35. NTSTATUS
  36. SpExtractAssemblyCabinetsInternalNoRetryOrUi(
  37. //
  38. // so many parameters implies we should take them in a struct..
  39. //
  40. HANDLE SifHandle,
  41. IN PCWSTR SourceDevicePath, // \device\harddisk0\partition2
  42. IN PCWSTR DirectoryOnSourceDevice, // \$win_nt$.~ls
  43. IN PCWSTR SysrootDevice, // \Device\Harddisk0\Partition2
  44. IN PCWSTR Sysroot, // \WINDOWS.2
  45. PSP_ASMS_ERROR_INFORMATION ErrorInfo,
  46. PSP_ASMCABS_FILE_OPEN_UI_CALLBACK FileOpenUiCallback,
  47. PVOID FileOpenUiCallbackContext
  48. );
  49. PVOID
  50. DIAMONDAPI
  51. SpAsmCabsMemAllocCallback(
  52. IN ULONG Size
  53. );
  54. VOID
  55. DIAMONDAPI
  56. SpAsmCabsMemFreeCallback(
  57. IN PVOID Memory
  58. );
  59. UINT
  60. DIAMONDAPI
  61. SpAsmCabsReadFileCallback(
  62. IN INT_PTR Handle,
  63. OUT PVOID pv,
  64. IN UINT ByteCount
  65. );
  66. UINT
  67. DIAMONDAPI
  68. SpAsmCabsWriteFileCallback(
  69. IN INT_PTR Handle,
  70. IN PVOID pv,
  71. IN UINT ByteCount
  72. );
  73. LONG
  74. DIAMONDAPI
  75. SpAsmCabsSeekFileCallback(
  76. IN INT_PTR Handle,
  77. IN long Distance32,
  78. IN int SeekType
  79. );
  80. INT_PTR
  81. DIAMONDAPI
  82. SpAsmCabsOpenFileForReadCallbackA(
  83. IN PSTR FileName,
  84. IN int oflag,
  85. IN int pmode
  86. );
  87. NTSTATUS
  88. SpAsmCabsNewFile(
  89. PSP_EXTRACT_ASMCABS_FILE_CONTEXT * MyFileHandle
  90. );
  91. VOID
  92. SpAsmCabsCloseFile(
  93. PSP_EXTRACT_ASMCABS_FILE_CONTEXT MyFileHandle
  94. );
  95. int
  96. DIAMONDAPI
  97. SpAsmCabsCloseFileCallback(
  98. IN INT_PTR Handle
  99. );
  100. INT_PTR
  101. DIAMONDAPI
  102. SpExtractAsmCabsFdiCopyCallback(
  103. IN FDINOTIFICATIONTYPE Operation,
  104. IN PFDINOTIFICATION Parameters
  105. );
  106. #endif