/*++ Copyright (c) Microsoft Corporation Module Name: spasmcabs.h Abstract: Author: Jay Krell (JayKrell) May 2002 Revision History: --*/ #pragma once NTSTATUS SpExtractAssemblyCabinets( // // so many parameters implies we should take them in a struct.. // HANDLE SifHandle, IN PCWSTR SourceDevicePath, // \device\harddisk0\partition2 IN PCWSTR DirectoryOnSourceDevice, // \$win_nt$.~ls IN PCWSTR SysrootDevice, // \Device\Harddisk0\Partition2 IN PCWSTR Sysroot // \WINDOWS.2 ); // // The rest is private. // #if defined(SP_ASM_CABS_PRIVATE) typedef struct _SP_EXTRACT_ASMCABS_GLOBAL_CONTEXT SP_EXTRACT_ASMCABS_GLOBAL_CONTEXT, *PSP_EXTRACT_ASMCABS_GLOBAL_CONTEXT; typedef struct _SP_EXTRACT_ASMCABS_FDICOPY_CONTEXT SP_EXTRACT_ASMCABS_FDICOPY_CONTEXT, *PSP_EXTRACT_ASMCABS_FDICOPY_CONTEXT; typedef struct _SP_EXTRACT_ASMCABS_FILE_CONTEXT SP_EXTRACT_ASMCABS_FILE_CONTEXT, *PSP_EXTRACT_ASMCABS_FILE_CONTEXT; typedef struct _SP_ASMS_ERROR_INFORMATION SP_ASMS_ERROR_INFORMATION, *PSP_ASMS_ERROR_INFORMATION; // // This should take PCUNICODE_STRING and use Context to efficiently make a nul // terminated copy, but instead we nul terminate mostly as we go.. // typedef VOID (CALLBACK * PSP_ASMCABS_FILE_OPEN_UI_CALLBACK)(PVOID Context, PCWSTR LeafCabFileName); NTSTATUS SpExtractAssemblyCabinetsInternalNoRetryOrUi( // // so many parameters implies we should take them in a struct.. // HANDLE SifHandle, IN PCWSTR SourceDevicePath, // \device\harddisk0\partition2 IN PCWSTR DirectoryOnSourceDevice, // \$win_nt$.~ls IN PCWSTR SysrootDevice, // \Device\Harddisk0\Partition2 IN PCWSTR Sysroot, // \WINDOWS.2 PSP_ASMS_ERROR_INFORMATION ErrorInfo, PSP_ASMCABS_FILE_OPEN_UI_CALLBACK FileOpenUiCallback, PVOID FileOpenUiCallbackContext ); PVOID DIAMONDAPI SpAsmCabsMemAllocCallback( IN ULONG Size ); VOID DIAMONDAPI SpAsmCabsMemFreeCallback( IN PVOID Memory ); UINT DIAMONDAPI SpAsmCabsReadFileCallback( IN INT_PTR Handle, OUT PVOID pv, IN UINT ByteCount ); UINT DIAMONDAPI SpAsmCabsWriteFileCallback( IN INT_PTR Handle, IN PVOID pv, IN UINT ByteCount ); LONG DIAMONDAPI SpAsmCabsSeekFileCallback( IN INT_PTR Handle, IN long Distance32, IN int SeekType ); INT_PTR DIAMONDAPI SpAsmCabsOpenFileForReadCallbackA( IN PSTR FileName, IN int oflag, IN int pmode ); NTSTATUS SpAsmCabsNewFile( PSP_EXTRACT_ASMCABS_FILE_CONTEXT * MyFileHandle ); VOID SpAsmCabsCloseFile( PSP_EXTRACT_ASMCABS_FILE_CONTEXT MyFileHandle ); int DIAMONDAPI SpAsmCabsCloseFileCallback( IN INT_PTR Handle ); INT_PTR DIAMONDAPI SpExtractAsmCabsFdiCopyCallback( IN FDINOTIFICATIONTYPE Operation, IN PFDINOTIFICATION Parameters ); #endif