// common (shared) routines VOID SetErrorText( DWORD ResID ); VOID SetReturnText( LPSTR Text ); BOOL FFileExist(LPSTR); BOOL GenerateSortedIndexList ( IN DWORD cArgs, IN LPSTR Args[], OUT LPSTR *TextOut ); // routines in nt_io.c HANDLE OpenDisk(PSTR DriveName,BOOL WriteAccessDesired); HANDLE OpenDiskNT(CHAR *NTStylePathName); ULONG OpenDiskStatus(PSTR NTDeviceName,PHANDLE Handle); BOOL CloseDisk(HANDLE Handle); ULONG GetSectorSize(HANDLE Handle); ULONG GetPartitionSize(CHAR *DriveName); BOOL ReadDiskSectors (HANDLE Handle,ULONG Sector,ULONG NumSectors,PVOID Buffer,ULONG SectorSize); BOOL WriteDiskSectors(HANDLE Handle,ULONG Sector,ULONG NumSectors,PVOID Buffer,ULONG SectorSize); BOOL ShutdownSystemWorker(IN BOOL Reboot); //BOOL MakePartitionWorker(DWORD Disk,DWORD Size); // workers for DLL entry points BOOL LayBootCodeWorker(IN LPSTR DOSDriveName,IN LPSTR FileSys,IN LPSTR BootCodeFile,IN LPSTR BootSectorSaveFile); BOOL ConfigFileSubstWorker(IN LPSTR File,IN DWORD NumSubsts,IN LPSTR *Substs); BOOL BinaryFileSubstWorker(IN LPSTR File,IN DWORD NumSubsts,IN LPSTR *Substs); BOOL ConfigFileAppendWorker(IN LPSTR File,IN DWORD NumSubsts, IN LPSTR *Substs); BOOL CheckConfigTypeWorker( IN LPSTR File ); BOOL VdmFixupWorker( LPSTR szAddOnConfig, LPSTR szAddOnBatch); //===================================================== // Registry.c declarations //===================================================== // // 1. Registry routines of general use // BOOL GetMaxSizeValueInKey( HKEY hKey, LPDWORD cbData ); PVOID GetValueEntry( HKEY hKey, LPSTR szValueName ); BOOL GenerateUniqueFileName( IN LPSTR TempPath, IN LPSTR Prefix, IN OUT LPSTR TempFile ); // // 2. Install workers // BOOL SetMyComputerNameWorker( LPSTR ComputerName ); BOOL SetEnvVarWorker( LPSTR UserOrSystem, LPSTR Name, LPSTR Title, LPSTR RegType, LPSTR Data ); BOOL ExpandSzWorker( LPSTR EnvironmentString, LPSTR ReturnBuffer, DWORD cbReturnBuffer ); VOID DoDelnode( IN PCHAR Directory ); //===================================================== // Security.c declarations //===================================================== #define ENABLE_PRIVILEGE 0 #define DISABLE_PRIVILEGE 1 #define RESTORE_PRIVILEGE 2 // // 1. Security routines of general use // BOOL AdjustPrivilege( IN LONG PrivilegeType, IN INT Action, IN PTOKEN_PRIVILEGES PrevState, IN PULONG ReturnLength ); BOOL RestorePrivilege( IN PTOKEN_PRIVILEGES PrevState ); // // 2. Workers for install entry points // BOOL CheckPrivilegeExistsWorker( IN LPSTR PrivilegeType ); BOOL EnablePrivilegeWorker( LPSTR PrivilegeType, LPSTR Action ); //====================================================== // Printer.c declarations //====================================================== BOOL AddPrinterDriverWorker( LPSTR Model, LPSTR Environment, LPSTR Driver, LPSTR DataFile, LPSTR ConfigFile, LPSTR Server ); BOOL AddPrinterWorker( LPSTR Name, LPSTR Port, LPSTR Model, LPSTR Description, LPSTR PrintProcessor, DWORD Attributes, LPSTR Server ); BOOL AddPrinterMonitorWorker( IN LPSTR Model, IN LPSTR Environment, IN LPSTR Driver, IN LPSTR Server ); //====================================================== // Netcon.c declarations //====================================================== BOOL AddNetConnectionWorker( IN LPSTR szUNCName, IN LPSTR szPassword, IN LPSTR szLocalName ); BOOL DeleteNetConnectionWorker( IN LPSTR szLocalName, IN LPSTR szForceClosure ); CHAR CheckNetConnection( LPSTR szUNCName ); VOID DeleteAllConnectionsWorker( VOID ); //====================================================== // Nls.c declarations //====================================================== BOOL SetCurrentLocaleWorker( LPSTR Locale, LPSTR ModifyCPL ); //====================================================== // sc.c declarations (service controller) //====================================================== BOOL TestAdminWorker( ); BOOL SetupCreateServiceWorker( LPSTR lpServiceName, LPSTR lpDisplayName, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPSTR lpBinaryPathName, LPSTR lpLoadOrderGroup, LPSTR lpDependencies, LPSTR lpServiceStartName, LPSTR lpPassword ); BOOL SetupChangeServiceStartWorker( LPSTR lpServiceName, DWORD dwStartType ); BOOL SetupChangeServiceConfigWorker( LPSTR lpServiceName, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPSTR lpBinaryPathName, LPSTR lpLoadOrderGroup, LPSTR lpDependencies, LPSTR lpServiceStartName, LPSTR lpPassword, LPSTR lpDisplayName ); LPSTR ProcessDependencyList( LPSTR lpDependenciesList ); //====================================================== // Mips NVRAM var functions //====================================================== BOOL GetEnvironmentString(IN LPSTR lpVar, OUT LPSTR lpValue,IN USHORT MaxLengthValue); BOOL SetEnvironmentString(IN LPSTR lpVar, IN LPSTR lpValue); // // Object directory manipulation functions // BOOL GetSymbolicLinkSource( IN PUNICODE_STRING pObjDir_U, IN PUNICODE_STRING pTarget_U, OUT PUNICODE_STRING pSource_U ); BOOL GetSymbolicLinkTarget( IN PUNICODE_STRING pSourceString_U, IN OUT PUNICODE_STRING pDestString_U ); // // DOS Name and Arc Name space manipulation // BOOL DosPathToNtPathWorker( IN LPSTR DosPath, OUT LPSTR NtPath ); BOOL NtPathToDosPathWorker( IN LPSTR NtPath, OUT LPSTR DosPath ); BOOL DosPathToArcPathWorker( IN LPSTR DosPath, OUT LPSTR ArcPath ); BOOL ArcPathToDosPathWorker( IN LPSTR ArcPath, OUT LPSTR DosPath ); BOOL IsDriveExternalScsi( IN LPSTR DosDrive, OUT BOOL *IsExternalScsi ); // external data extern HANDLE MyDllModuleHandle; extern ULONG SectorSize; // data structs typedef struct _tagTEMPFILE { struct _tagTEMPFILE *Next; // *MUST* BE THE FIRST FIELD!!! LPSTR Filename; } TEMPFILE,*PTEMPFILE; // the following are used for portable access to various // in-memory copies of disk structures #define LoadBYTE(x) ((DWORD)(*(PBYTE)(x))) #define LoadWORD(x) ((DWORD)( (USHORT)(* (PBYTE)(x) ) \ | ((USHORT)(*((PBYTE)(x) + 1)) << 8) )) #define LoadDWORD(x) ((LoadWORD((PBYTE)(x)+2) << 16) | LoadWORD(x))