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

/*++
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