Project

General

Profile

Statistics
| Revision:

vdfsplat / AppSrc / cWinKernEx.H @ 67

History | View | Annotate | Download (15.7 KB)

1
// cWinKernEx.h
2
// By Sergey V. Natarov (senatc@postman.ru)
3
// Windows Kernel Interface
4
//
5

    
6
Define MAX_COMPUTERNAME_LENGTH For 15
7

    
8
#IF (FMAC_VERSION < 8)
9
Define SYNCHRONIZE              For |CI$00100000
10
Define NOTSYNCHRONIZE           For |CI$FFEFFFFF
11
Define STANDARD_RIGHTS_REQUIRED For |CI$000F0000
12
#ENDIF
13

    
14
// Drive types
15
Define DRIVE_UNKNOWN     For 0
16
Define DRIVE_NO_ROOT_DIR For 1
17
Define DRIVE_REMOVABLE   For 2
18
Define DRIVE_FIXED       For 3
19
Define DRIVE_REMOTE      For 4
20
Define DRIVE_CDROM       For 5
21
Define DRIVE_RAMDISK     For 6
22

    
23
Define PROCESS_TERMINATE         For |CI$0001
24
Define PROCESS_CREATE_THREAD     For |CI$0002
25
Define PROCESS_SET_SESSIONID     For |CI$0004
26
Define PROCESS_VM_OPERATION      For |CI$0008
27
Define PROCESS_VM_READ           For |CI$0010
28
Define PROCESS_VM_WRITE          For |CI$0020
29
Define PROCESS_DUP_HANDLE        For |CI$0040
30
Define PROCESS_CREATE_PROCESS    For |CI$0080
31
Define PROCESS_SET_QUOTA         For |CI$0100
32
Define PROCESS_SET_INFORMATION   For |CI$0200
33
Define PROCESS_QUERY_INFORMATION For |CI$0400
34
Define PROCESS_ALL_ACCESS        For (STANDARD_RIGHTS_REQUIRED Ior SYNCHRONIZE Ior |CI$FFFF)
35

    
36
Define FORMAT_MESSAGE_ALLOCATE_BUFFER   For |CI$00000100
37
Define FORMAT_MESSAGE_IGNORE_INSERTS    For |CI$00000200
38
Define FORMAT_MESSAGE_FROM_STRING       For |CI$00000400
39
Define FORMAT_MESSAGE_FROM_HMODULE      For |CI$00000800
40
Define FORMAT_MESSAGE_FROM_SYSTEM       For |CI$00001000
41
Define FORMAT_MESSAGE_ARGUMENT_ARRAY    For |CI$00002000
42
Define FORMAT_MESSAGE_MAX_WIDTH_MASK    For |CI$000000FF
43

    
44
Type _OSVERSIONINFO
45
  Field _OSVERSIONINFO.dwOSVersionInfoSize As dWord
46
  Field _OSVERSIONINFO.dwMajorVersion As dWord
47
  Field _OSVERSIONINFO.dwMinorVersion As dWord
48
  Field _OSVERSIONINFO.dwBuildNumber As dWord
49
  Field _OSVERSIONINFO.dwPlatformId As dWord
50
  Field _OSVERSIONINFO.szCSDVersion As Char 128
51
End_Type // _OSVERSIONINFO
52

    
53
// GetVersionEx constants
54

    
55
Enumeration_List
56
  Define CP_VER_PLATFORM_WIN32s        // Win32s on Windows 3.1.
57
  Define CP_VER_PLATFORM_WIN32_WINDOWS // Win32 on Windows 95.
58
  Define CP_VER_PLATFORM_WIN32_NT      // Win32 on Windows NT, 2000, XP and 2003
59
End_Enumeration_List
60

    
61
Enumeration_List
62
  Define Ver_MajorVersion_Windows_95              For 4
63
  Define Ver_MajorVersion_Windows_98              For 4
64
  Define Ver_MajorVersion_Windows_Me              For 4
65
  Define Ver_MajorVersion_Windows_NT_351          For 3
66
  Define Ver_MajorVersion_Windows_NT_40           For 4
67
  Define Ver_MajorVersion_Windows_2000            For 5
68
  Define Ver_MajorVersion_Windows_XP              For 5
69
  Define Ver_MajorVersion_Windows_NET_Server      For 5
70
End_Enumeration_List
71

    
72
Enumeration_List
73
  Define Ver_MinorVersion_Windows_95              For 0
74
  Define Ver_MinorVersion_Windows_98              For 10
75
  Define Ver_MinorVersion_Windows_Me              For 90
76
  Define Ver_MinorVersion_Windows_NT_351          For 51
77
  Define Ver_MinorVersion_Windows_NT_40           For 0
78
  Define Ver_MinorVersion_Windows_2000            For 0
79
  Define Ver_MinorVersion_Windows_XP              For 1
80
  Define Ver_MinorVersion_Windows_NET_Server      For 1
81
End_Enumeration_List
82

    
83

    
84
Enumeration_List
85
  Define Ver_Suite_SmallBusiness                  For  |CI$0001
86
  Define Ver_Suite_Enterprise                     For  |CI$0002
87
  Define Ver_Suite_BackOffice                     For  |CI$0004
88
  Define Ver_Suite_Communications                 For  |CI$0008
89
  Define Ver_Suite_Terminal                       For  |CI$0010
90
  Define Ver_Suite_SmallBusiness_Restricted       For  |CI$0020
91
  Define Ver_Suite_EmbeddedNT                     For  |CI$0040
92
  Define Ver_Suite_DataCenter                     For  |CI$0080
93
  Define Ver_Suite_SingleUserTS                   For  |CI$0100
94
  Define Ver_Suite_Personal                       For  |CI$0200
95
  Define Ver_Suite_Blade                          For  |CI$0400
96
  Define Ver_Suite_Storage_Server                 For  |CI$2000  
97
  Define Ver_Suite_WH_Server                      For  |CI$8000    
98
End_Enumeration_List
99

    
100

    
101
Enumeration_List
102
  Define VER_NT_WORKSTATION                       For 1           // The system is running Windows NT 4.0 Workstation,
103
                                                                  // Windows 2000 Professional, Windows XP Home Edition, or
104
                                                                  // Windows XP Professional.
105
  Define VER_NT_DOMAIN_CONTROLLER                 For 2           // The system is a domain controller.
106
  Define VER_NT_SERVER                            For 3           // The system is a server.
107
End_Enumeration_List
108

    
109

    
110
Type _OSVERSIONINFOEX
111
  Field _OSVERSIONINFOEX.dwOSVersionInfoSize      As dWord
112
  Field _OSVERSIONINFOEX.dwMajorVersion           As dWord
113
  Field _OSVERSIONINFOEX.dwMinorVersion           As dWord
114
  Field _OSVERSIONINFOEX.dwBuildNumber            As dWord
115
  Field _OSVERSIONINFOEX.dwPlatformId             As dWord
116
  Field _OSVERSIONINFOEX.szCSDVersion             As Char 128
117
  Field _OSVERSIONINFOEX.wServicePackMajor        As Word
118
  Field _OSVERSIONINFOEX.wServicePackMinor        As Word
119
  Field _OSVERSIONINFOEX.wSuiteMask               As Word
120
  Field _OSVERSIONINFOEX.wProductType             As Byte
121
  Field _OSVERSIONINFOEX.wReserved                As Byte
122
End_Type // _OSVERSIONINFOEX
123

    
124

    
125
// 2004-05-24 ------------------------------------ Start Nils G. Svedmyr
126
//#IFDEF MEMORYSTATUS_SIZE
127
//  #ELSE
128
//    DEFINE$VARIABLE$HELP INTEGER MEMORYSTATUS_SIZE
129
//#ENDIF
130

    
131
//#IF (MEMORYSTATUS_SIZE = |CI0)
132
//  Type MEMORYSTATUS
133
//    Field MEMORYSTATUS.dwLength         As DWord // sizeof(MEMORYSTATUS)
134
//    Field MEMORYSTATUS.dwMemoryLoad     As DWord // percent of memory in use
135
//    Field MEMORYSTATUS.dwTotalPhys      As DWord // bytes of physical memory
136
//    Field MEMORYSTATUS.dwAvailPhys      As DWord // free physical memory bytes
137
//    Field MEMORYSTATUS.dwTotalPageFile  As DWord // bytes of paging file
138
//    Field MEMORYSTATUS.dwAvailPageFile  As DWord // free bytes of paging file
139
//    Field MEMORYSTATUS.dwTotalVirtual   As DWord // user bytes of address space
140
//    Field MEMORYSTATUS.dwAvailVirtual   As DWord // free user bytes
141
//  End_Type // MEMORYSTATUS
142
//#ENDIF
143
// 2004-05-24 ------------------------------------ Stop Nils G. Svedmyr
144

    
145
External_Function GetTempPathEf   "GetTempPathA"  Kernel32.Dll Integer nBufferLength Pointer lpBuffer Returns Integer
146
External_Function GetSystemTimeEf "GetSystemTime" Kernel32.dll Pointer lpSystemTime Returns Integer
147
External_Function CreateProcessEf "CreateProcessA"  Kernel32.dll ;
148
    Pointer  ApplicationName ;
149
    Pointer  CmdLine ;
150
    Pointer  ProcessAttr ;       //Struct
151
    Pointer  ThreadAttr ;        //Struct
152
    Integer  InheritHandles ;
153
    Integer  CreationFlags ;
154
    Integer  EnvironmentBlock ;
155
    Pointer  CurrentDirectory ;
156
    Pointer  StartupInfo ;       //Struct
157
    Pointer  ProcessInformation ;//Struct
158
    Returns Integer
159

    
160
External_Function GetEnvironmentStringsEf "GetEnvironmentStringsA" Kernel32.dll Returns Pointer
161
External_Function FreeEnvironmentStringsEf "FreeEnvironmentStringsA" Kernel32.dll Pointer lpEnvBlock Returns Integer
162
External_Function MyCreateProcessEf "CreateProcessA" Kernel32.dll ;
163
    Pointer  A ;
164
    Pointer  C ;
165
    Pointer  P ;
166
    Pointer  T ;
167
    Integer  I ;
168
    Integer  Cr ;
169
    Integer  E ;
170
    Pointer  Cu ;
171
    Pointer  S ;
172
    Pointer  Pr ;
173
    Returns Integer
174

    
175
External_Function SleepMilliEf         "Sleep" Kernel32.dll UInteger dwMillisecond Returns Integer
176
External_Function WaitForSingleObjectEf "WaitForSingleObject" Kernel32.dll Handle hHandle Integer  msec Returns Integer
177
External_Function CloseHandleEf        "CloseHandle" Kernel32.dll Handle hHandle Returns Integer
178

    
179
External_Function GetExitCodeProcessEf "GetExitCodeProcess" Kernel32.dll Handle hProcess Pointer lpLong Returns Integer
180
External_Function ExitProcessEf        "ExitProcess" Kernel32.dll Integer iExitCode Returns Integer
181
External_Function GetCurrentProcessEf  "GetCurrentProcess" Kernel32.dll Returns Handle 
182
External_Function TerminateProcessEf   "TerminateProcess" Kernel32.dll Handle hProcess Integer uExitCode Returns Integer
183
External_Function FindExecutableEf     "FindExecutableA" Shell32.dll String sFileName String sDefaultDir Pointer lpBuffer Returns Integer
184

    
185
External_Function InitAtomTableEf      "InitAtomTable" kernel32.dll Integer nSize Returns Integer
186
External_Function GlobalAddAtomEf      "GlobalAddAtomA" kernel32.dll Pointer lpsString Returns Integer
187
External_Function GlobalDeleteAtomEf   "GlobalDeleteAtom"  kernel32.dll Integer nAtom  Returns Integer
188
External_Function GlobalFindAtomEf     "GlobalFindAtomA" kernel32.dll Pointer lpsString Returns Integer
189
External_Function GlobalGetAtomNameEf  "GlobalGetAtomNameA" kernel32.dll Integer nAtom Pointer lpBuffer Integer nSize Returns Integer
190
External_Function CompareFileTimeEf    "CompareFileTime" kernel32.dll Pointer lpFileTime1 Pointer lpFileTime2 Returns Integer
191

    
192
External_Function lcloseEf "_lclose" kernel32.dll Handle hFile Returns Integer
193
External_Function lCreatEf "_lcreat" kernel32.dll String lpPathName Integer iAttribute Returns Handle
194
External_Function llseekEf "_llseek" kernel32.dll Handle hFile Integer lOffset Integer iOrigin Returns Integer
195
External_Function lopenEf "_lopen" kernel32.dll String lpPathName Integer iReadWrite Returns Handle
196
External_Function lreadEf "_lread" kernel32.dll Handle hFile Pointer lpBuffer Integer wBytes Returns Integer
197
External_Function lwriteEf "_lwrite" kernel32.dll Handle hFile Pointer lpBuffer Integer wBytes Returns Integer
198
External_Function lstrcpyEf "lstrcpyA" kernel32.dll Pointer lpString1 Pointer lpString2 Returns Integer
199

    
200
External_Function GetTempFileNameEf "GetTempFileNameA" kernel32.dll String sPath String sPrefix Integer sUnique Pointer sLoad Returns Integer
201
External_Function GetTmpPathEf "GetTempPathA" kernel32.dll Integer iBufferSize Pointer sBuffer Returns Integer
202

    
203
External_Function FindFirstFileEf "FindFirstFileA" kernel32.dll Pointer lpFileName Pointer pWin32 Returns Handle
204
External_Function FindNextFileEf "FindNextFileA" kernel32.dll Handle hSearch Pointer pWin32 Returns Integer
205
External_Function FindCloseEf "FindClose" kernel32.dll Handle hSearch Returns Integer
206
External_Function xtCopyFileEf "CopyFileA" kernel32.dll String sFileName String sNewFileName Integer bFailIfExists Returns Integer
207
External_Function MoveFileEf "MoveFileA" kernel32.dll String szExistingFilename String szNewFilename Returns Integer
208

    
209
External_Function GlobalAllocEf "GlobalAlloc" kernel32.dll Integer wFlags Integer dwBytes Returns Handle
210
External_Function GlobalFreeEf "GlobalFree" kernel32.dll Handle hMem Returns Integer
211
External_Function GlobalLockEf "GlobalLock" kernel32.dll Handle hMem Returns Integer
212
External_Function GlobalUnlockEf "GlobalUnlock" kernel32.dll Handle hMem Returns Integer
213

    
214
External_Function SetLastErrorEf "SetLastError" kernel32.dll Integer dwErrorCode Returns Integer
215
External_Function GetCurrentProcessIDEf "GetCurrentProcessId" kernel32.dll Returns Address  // should be DWord or uinteger
216
External_Function OpenProcessEf "OpenProcess" Kernel32.Dll Integer dwDesiredAccess Boolean bInheritHandle Integer dwProcessId Returns Handle
217
External_Function GetModuleFileNameEf "GetModuleFileNameA" Kernel32.dll Handle hModule Address sFilename UInteger nSize Returns Integer
218

    
219
External_Function GetLocaleInfoEf "GetLocaleInfoA" Kernel32.dll Integer LCID Integer LCTYPE Pointer lpLCDATA Integer cchData Returns Integer
220
External_Function GetCalendarInfoEf "GetCalendarInfoA" Kernel32.Dll Integer iLocale Integer iCalendar Integer iCaltype Pointer lpCalData Integer cchData Pointer lpValue Returns Integer
221

    
222
External_Function GlobalMemoryStatusEf "GlobalMemoryStatus" Kernel32.Dll Pointer lpsMemoryStatus Returns Integer
223
External_Function GetLogicalDriveStringsEf "GetLogicalDriveStringsA" Kernel32.Dll Integer nBufferLength Pointer lpBuffer Returns Integer
224
External_Function GetDriveTypeEf "GetDriveTypeA" Kernel32.Dll Pointer lpRootPathName Returns Integer
225

    
226
External_Function GetVolumeInformationEf "GetVolumeInformationA" Kernel32.DLL ;
227
    Pointer lpRootPathName Pointer lpVolumeNameBuffer Integer nVolumeNameSize Pointer lpVolumeSerialNumber Pointer lpMaximumComponentLength ;
228
    Pointer lpFileSystemFlags Pointer lpFileSystemNameBuffer Integer nFileSystemNameSize Returns Integer
229

    
230
External_Function SetVolumeLabelEf "SetVolumeLabelA" Kernel32.dll Pointer lpRootPathName Pointer lpVolumeName Returns Integer
231

    
232
External_Function GetDiskFreeSpaceExEf "GetDiskFreeSpaceExA" Kernel32.dll Pointer lpDirectoryName Pointer lpFreeBytesAvailable Pointer lpTotalNumberOfBytes Pointer lpTotalNumberOfFreeBytes Returns Integer
233

    
234
External_Function GetOSVersionExEf "GetVersionExA" KERNEL32.DLL Pointer lpVersionInformation Returns Integer
235

    
236
External_Function GetShortPathNameEf "GetShortPathNameA" Kernel32.Dll Pointer lpszLongPath Pointer lpszShortPath DWord cchBuffer Returns Dword
237
External_Function GetLongPathNameEf "GetLongPathNameA" Kernel32.Dll Pointer lpszShortPath Pointer lpszLongPath DWord cchBuffer Returns Integer
238

    
239
External_Function GetComputerNameEf "GetComputerNameA" Kernel32.Dll Pointer lpComputerName DWord nNameSize Returns Integer
240

    
241
External_Function GetWindowsDirectoryEf "GetWindowsDirectoryA" kernel32.dll Pointer lpBuffer Integer nSize Returns Integer
242
External_Function GetSystemDirectoryEf "GetSystemDirectoryA" Kernel32.Dll Pointer lpBuffer UInteger uSize Returns Integer
243
External_Function GetCurrentDirectoryEf "GetCurrentDirectoryA" kernel32.dll Integer nSize Pointer lpBuffer Returns Integer
244

    
245

    
246
External_Function CreatefileEf "CreateFileA" kernel32.dll Pointer lpFile DWord dwDesAccess DWord dwShare Pointer lpSecAtt DWord dwCrDisp DWord dwFlags Handle hTempFile Returns Integer
247
External_Function FormatMessageEf "FormatMessageA" kernel32.dll Integer dwFlags Pointer lpSrc Integer dwMsgId Integer dwLngId Pointer lpBuf Integer nSize  Pointer Arg Returns Integer
248
External_Function ReadFileEf "ReadFile" kernel32.dll Handle hFile Pointer lpBuffer DWord nBytesToRead Pointer lpBytesRead Pointer lpOverlapped Returns Integer
249
External_Function WriteFileEf "WriteFile" kernel32.dll Handle hFile Pointer lpBuf DWord nNumBytesWrt Pointer lpNumBytesWritten Pointer lpOverlapped Returns Integer
250
External_Function GetFileSizeEf "GetFileSize" kernel32.dll Handle hFile Pointer lpFileSizeHigh Returns Integer
251
External_Function SetFilePointerEf "SetFilePointer" kernel32.dll Handle hFile Integer lDistToMove Pointer lpDistToMoveHigh DWord dwMoveMethod Returns Integer
252
External_Function DeleteFileEf "DeleteFileA" Kernel32.Dll Pointer lpFileName Returns Integer
253
External_Function CopyFileEf "CopyFileA" Kernel32.Dll Pointer lpExistingFileName Pointer lpNewFileName Boolean bFailIfExists Returns Integer
254
External_Function FileTimeToSystemTimeEf "FileTimeToSystemTime" Kernel32.dll Pointer lpFiletime Pointer lpSystemtime Returns Integer
255
External_Function FileTimeToLocalFileTimeEf "FileTimeToLocalFileTime" Kernel32.dll Pointer lpFileTime Pointer lpLocalFileTime Returns Integer
256
External_Function GetDateFormatEf "GetDateFormatA" Kernel32.dll Integer iLocale DWord dwFlags Pointer lpDate Pointer lpFormat Pointer lpDateStr Integer icchDate Returns Integer
257
External_Function GetTimeFormatEf "GetTimeFormatA" Kernel32.dll Integer iLocale DWord dwFlags Pointer lpTime Pointer lpFormat Pointer lpTimeSt Integer icchTime Returns Integer
258

    
259
External_Function GetLastErrorEf "GetLastError" Kernel32.Dll Returns Integer
260

    
261
External_Function LockFileEf "LockFile" Kernel32.dll Handle hFile DWord dwFileOffsetLow DWord dwFileOffsetHigh DWord nNumberOfBytesToLockLow DWord nNumberOfBytesToLockHigh Returns Integer
262
External_Function UnLockFileEf "UnLockFile" Kernel32.dll Handle hFile DWord dwFileOffsetLow DWord dwFileOffsetHigh DWord nNumberOfBytesToUnLockLow DWord nNumberOfBytesToUnLockHigh Returns Integer
263

    
264