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.

935 lines
48 KiB

  1. /*++ BUILD Version: 0001
  2. *
  3. * WOW v1.0
  4. *
  5. * Copyright (c) 2002, Microsoft Corporation
  6. *
  7. * dpmf_fio.h
  8. * NTVDM Dynamic Patch Module to support File I/O API family
  9. * Definitions & macors to support calls into dpmffio.dll
  10. *
  11. * History:
  12. * Created 01-25-2002 by cmjones
  13. --*/
  14. #ifndef _DPMF_FIOAPI_H_
  15. #define _DPMF_FIOAPI_H_
  16. #define FIOPFT (DPMFAMTBLS()[FIO_FAM])
  17. #define FIO_SHIM(ord,typ) ((typ)((pFT)->pDpmShmTbls[ord]))
  18. // The order of this list must be the same as the lists below
  19. enum FioFam {DPM_OPENFILE=0, // Win 3.1 set
  20. DPM__LCLOSE,
  21. DPM__LOPEN,
  22. DPM__LCREAT,
  23. DPM__LLSEEK,
  24. DPM__LREAD,
  25. DPM__LWRITE,
  26. DPM__HREAD,
  27. DPM__HWRITE,
  28. DPM_GETTEMPFILENAME, // End Win 3.1 Set
  29. DPM_AREFILEAPISANSI, // Start Win 9x API set
  30. DPM_CANCELIO,
  31. DPM_CLOSEHANDLE,
  32. DPM_COPYFILE,
  33. DPM_COPYFILEEX,
  34. DPM_CREATEDIRECTORY,
  35. DPM_CREATEDIRECTORYEX,
  36. DPM_CREATEFILE,
  37. DPM_DELETEFILE,
  38. DPM_FINDCLOSE,
  39. DPM_FINDCLOSECHANGENOTIFICATION,
  40. DPM_FINDFIRSTCHANGENOTIFICATION,
  41. DPM_FINDFIRSTFILE,
  42. DPM_FINDNEXTCHANGENOTIFICATION,
  43. DPM_FINDNEXTFILE,
  44. DPM_FLUSHFILEBUFFERS,
  45. DPM_GETCURRENTDIRECTORY,
  46. DPM_GETDISKFREESPACE,
  47. DPM_GETDISKFREESPACEEX,
  48. DPM_GETDRIVETYPE,
  49. DPM_GETFILEATTRIBUTES,
  50. DPM_GETFILEATTRIBUTESEX,
  51. DPM_GETFILEINFORMATIONBYHANDLE,
  52. DPM_GETFILESIZE,
  53. DPM_GETFILETYPE,
  54. DPM_GETFULLPATHNAME,
  55. DPM_GETLOGICALDRIVES,
  56. DPM_GETLOGICALDRIVESTRINGS,
  57. DPM_GETLONGPATHNAME,
  58. DPM_GETSHORTPATHNAME,
  59. DPM_GETTEMPPATH,
  60. DPM_LOCKFILE,
  61. DPM_MOVEFILE,
  62. DPM_MOVEFILEEX,
  63. DPM_QUERYDOSDEVICE,
  64. DPM_READFILE,
  65. DPM_READFILEEX,
  66. DPM_REMOVEDIRECTORY,
  67. DPM_SEARCHPATH,
  68. DPM_SETCURRENTDIRECTORY,
  69. DPM_SETENDOFFILE,
  70. DPM_SETFILEAPISTOANSI,
  71. DPM_SETFILEAPISTOOEM,
  72. DPM_SETFILEATTRIBUTES,
  73. DPM_SETFILEPOINTER,
  74. DPM_SETVOLUMELABEL,
  75. DPM_UNLOCKFILE,
  76. DPM_WRITEFILE,
  77. DPM_WRITEFILEEX,
  78. DPM_GETTEMPFILENAMEW, // Wide char versions for
  79. DPM_COPYFILEW, // generic thunk support
  80. DPM_COPYFILEEXW,
  81. DPM_CREATEDIRECTORYW,
  82. DPM_CREATEDIRECTORYEXW,
  83. DPM_CREATEFILEW,
  84. DPM_DELETEFILEW,
  85. DPM_FINDFIRSTFILEW,
  86. DPM_FINDNEXTFILEW,
  87. DPM_GETCURRENTDIRECTORYW,
  88. DPM_GETDISKFREESPACEW,
  89. DPM_GETDISKFREESPACEEXW,
  90. DPM_GETDRIVETYPEW,
  91. DPM_GETFILEATTRIBUTESW,
  92. DPM_GETFILEATTRIBUTESEXW,
  93. DPM_GETFULLPATHNAMEW,
  94. DPM_GETLOGICALDRIVESTRINGSW,
  95. DPM_GETLONGPATHNAMEW,
  96. DPM_GETSHORTPATHNAMEW,
  97. DPM_GETTEMPPATHW,
  98. DPM_MOVEFILEW,
  99. DPM_MOVEFILEEXW,
  100. DPM_QUERYDOSDEVICEW,
  101. DPM_REMOVEDIRECTORYW,
  102. DPM_SEARCHPATHW,
  103. DPM_SETCURRENTDIRECTORYW,
  104. DPM_SETFILEATTRIBUTESW,
  105. DPM_SETVOLUMELABELW,
  106. enum_Fio_last};
  107. // DPM_FILEIOCOMPLETIONROUTINE, // application defined
  108. // These types will catch misuse of parameters & ret types
  109. typedef HFILE(*typdpmOpenFile)(LPCSTR, LPOFSTRUCT, UINT);
  110. typedef HFILE(*typdpm_lclose)(HFILE);
  111. typedef HFILE(*typdpm_lopen)(LPCSTR, int);
  112. typedef HFILE(*typdpm_lcreat)(LPCSTR, int);
  113. typedef LONG(*typdpm_llseek)(HFILE, LONG, int);
  114. typedef UINT(*typdpm_lread)(HFILE, LPVOID, UINT);
  115. typedef UINT(*typdpm_lwrite)(HFILE, LPCSTR, UINT);
  116. typedef long(*typdpm_hread)(HFILE, LPVOID, long);
  117. typedef long(*typdpm_hwrite)(HFILE, LPCSTR, long);
  118. typedef UINT(*typdpmGetTempFileNameA)(LPCSTR, LPCSTR, UINT, LPSTR);
  119. typedef BOOL(*typdpmAreFileApisANSI)(VOID);
  120. typedef BOOL(*typdpmCancelIo)(HANDLE);
  121. typedef BOOL(*typdpmCloseHandle)(HANDLE);
  122. typedef BOOL(*typdpmCopyFileA)(LPCSTR, LPCSTR, BOOL);
  123. typedef BOOL(*typdpmCopyFileExA)(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
  124. typedef BOOL(*typdpmCreateDirectoryA)(LPCSTR, LPSECURITY_ATTRIBUTES);
  125. typedef BOOL(*typdpmCreateDirectoryExA)(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
  126. typedef HANDLE(*typdpmCreateFileA)(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
  127. typedef BOOL(*typdpmDeleteFileA)(LPCSTR);
  128. typedef BOOL(*typdpmFindClose)(HANDLE);
  129. typedef BOOL(*typdpmFindCloseChangeNotification)(HANDLE);
  130. typedef HANDLE(*typdpmFindFirstChangeNotificationA)(LPCSTR, BOOL, DWORD);
  131. typedef HANDLE(*typdpmFindFirstFileA)(LPCSTR, LPWIN32_FIND_DATA);
  132. typedef BOOL(*typdpmFindNextChangeNotification)(HANDLE);
  133. typedef BOOL(*typdpmFindNextFileA)( HANDLE, LPWIN32_FIND_DATA);
  134. typedef BOOL(*typdpmFlushFileBuffers)(HANDLE);
  135. typedef DWORD(*typdpmGetCurrentDirectoryA)(DWORD, LPSTR);
  136. typedef BOOL(*typdpmGetDiskFreeSpaceA)(LPCSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
  137. typedef BOOL(*typdpmGetDiskFreeSpaceExA)(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
  138. typedef UINT(*typdpmGetDriveTypeA)(LPCSTR);
  139. typedef DWORD(*typdpmGetFileAttributesA)(LPCSTR);
  140. typedef BOOL(*typdpmGetFileAttributesExA)(LPCSTR, GET_FILEEX_INFO_LEVELS, LPVOID);
  141. typedef BOOL(*typdpmGetFileInformationByHandle)(HANDLE, LPBY_HANDLE_FILE_INFORMATION);
  142. typedef DWORD(*typdpmGetFileSize)(HANDLE, LPDWORD);
  143. typedef DWORD(*typdpmGetFileType)(HANDLE);
  144. typedef DWORD(*typdpmGetFullPathNameA)(LPCSTR, DWORD, LPSTR, LPSTR *);
  145. typedef DWORD(*typdpmGetLogicalDrives)(VOID);
  146. typedef DWORD(*typdpmGetLogicalDriveStringsA)(DWORD, LPSTR);
  147. typedef DWORD(*typdpmGetLongPathNameA)(LPCSTR, LPSTR, DWORD);
  148. typedef DWORD(*typdpmGetShortPathNameA)(LPCSTR, LPSTR, DWORD);
  149. typedef DWORD(*typdpmGetTempPathA)(DWORD, LPSTR);
  150. typedef BOOL(*typdpmLockFile)(HANDLE, DWORD, DWORD, DWORD, DWORD);
  151. typedef BOOL(*typdpmMoveFileA)(LPCSTR, LPCSTR);
  152. typedef BOOL(*typdpmMoveFileExA)(LPCSTR, LPCSTR, DWORD);
  153. typedef DWORD(*typdpmQueryDosDeviceA)(LPCSTR, LPSTR, DWORD);
  154. typedef BOOL(*typdpmReadFile)(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
  155. typedef BOOL(*typdpmReadFileEx)(HANDLE, LPVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
  156. typedef BOOL(*typdpmRemoveDirectoryA)(LPCSTR);
  157. typedef DWORD(*typdpmSearchPathA)(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR *);
  158. typedef BOOL(*typdpmSetCurrentDirectoryA)(LPCSTR);
  159. typedef BOOL(*typdpmSetEndOfFile)(HANDLE);
  160. typedef VOID(*typdpmSetFileApisToANSI)(VOID);
  161. typedef VOID(*typdpmSetFileApisToOEM)(VOID);
  162. typedef BOOL(*typdpmSetFileAttributesA)(LPCSTR, DWORD);
  163. typedef DWORD(*typdpmSetFilePointer)(HANDLE, LONG, PLONG, DWORD);
  164. typedef BOOL(*typdpmSetVolumeLabelA)(LPCSTR, LPCSTR);
  165. typedef BOOL(*typdpmUnlockFile)(HANDLE, DWORD, DWORD, DWORD, DWORD);
  166. typedef BOOL(*typdpmWriteFile)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
  167. typedef BOOL(*typdpmWriteFileEx)(HANDLE, LPCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
  168. typedef UINT(*typdpmGetTempFileNameW)(LPCWSTR, LPCWSTR, UINT, LPWSTR);
  169. typedef BOOL(*typdpmCopyFileW)(LPCWSTR, LPCWSTR, BOOL);
  170. typedef BOOL(*typdpmCopyFileExW)(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
  171. typedef BOOL(*typdpmCreateDirectoryW)(LPCWSTR, LPSECURITY_ATTRIBUTES);
  172. typedef BOOL(*typdpmCreateDirectoryExW)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
  173. typedef HANDLE(*typdpmCreateFileW)(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
  174. typedef BOOL(*typdpmDeleteFileW)(LPCWSTR);
  175. typedef HANDLE(*typdpmFindFirstFileW)(LPCWSTR, LPWIN32_FIND_DATAW);
  176. typedef BOOL(*typdpmFindNextFileW)( HANDLE, LPWIN32_FIND_DATAW);
  177. typedef DWORD(*typdpmGetCurrentDirectoryW)(DWORD, LPWSTR);
  178. typedef BOOL(*typdpmGetDiskFreeSpaceW)(LPCWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
  179. typedef BOOL(*typdpmGetDiskFreeSpaceExW)(LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
  180. typedef UINT(*typdpmGetDriveTypeW)(LPCWSTR);
  181. typedef DWORD(*typdpmGetFileAttributesW)(LPCWSTR);
  182. typedef BOOL(*typdpmGetFileAttributesExW)(LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID);
  183. typedef DWORD(*typdpmGetFullPathNameW)(LPCWSTR, DWORD, LPWSTR, LPWSTR *);
  184. typedef DWORD(*typdpmGetLogicalDriveStringsW)(DWORD, LPWSTR);
  185. typedef DWORD(*typdpmGetLongPathNameW)(LPCWSTR, LPWSTR, DWORD);
  186. typedef DWORD(*typdpmGetShortPathNameW)(LPCWSTR, LPWSTR, DWORD);
  187. typedef DWORD(*typdpmGetTempPathW)(DWORD, LPWSTR);
  188. typedef BOOL(*typdpmMoveFileW)(LPCWSTR, LPCWSTR);
  189. typedef BOOL(*typdpmMoveFileExW)(LPCWSTR, LPCWSTR, DWORD);
  190. typedef DWORD(*typdpmQueryDosDeviceW)(LPCWSTR, LPWSTR, DWORD);
  191. typedef BOOL(*typdpmRemoveDirectoryW)(LPCWSTR);
  192. typedef DWORD(*typdpmSearchPathW)(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR *);
  193. typedef BOOL(*typdpmSetCurrentDirectoryW)(LPCWSTR);
  194. typedef BOOL(*typdpmSetFileAttributesW)(LPCWSTR, DWORD);
  195. typedef BOOL(*typdpmSetVolumeLabelW)(LPCWSTR, LPCWSTR);
  196. // Macros to dispatch API calls properly
  197. #define DPM_OpenFile(a,b,c) \
  198. ((typdpmOpenFile)(FIOPFT->pfn[DPM_OPENFILE]))(a,b,c)
  199. #define DPM__lclose(a) \
  200. ((typdpm_lclose)(FIOPFT->pfn[DPM__LCLOSE]))(a)
  201. #define DPM__lopen(a,b) \
  202. ((typdpm_lopen)(FIOPFT->pfn[DPM__LOPEN]))(a,b)
  203. #define DPM__lcreat(a,b) \
  204. ((typdpm_lcreat)(FIOPFT->pfn[DPM__LCREAT]))(a,b)
  205. #define DPM__llseek(a,b,c) \
  206. ((typdpm_llseek)(FIOPFT->pfn[DPM__LLSEEK]))(a,b,c)
  207. #define DPM__lread(a,b,c) \
  208. ((typdpm_lread)(FIOPFT->pfn[DPM__LREAD]))(a,b,c)
  209. #define DPM__lwrite(a,b,c) \
  210. ((typdpm_lwrite)(FIOPFT->pfn[DPM__LWRITE]))(a,b,c)
  211. #define DPM__hread(a,b,c) \
  212. ((typdpm_hread)(FIOPFT->pfn[DPM__HREAD]))(a,b,c)
  213. #define DPM__hwrite(a,b,c) \
  214. ((typdpm_hwrite)(FIOPFT->pfn[DPM__HWRITE]))(a,b,c)
  215. #define DPM_GetTempFileName(a,b,c,d) \
  216. ((typdpmGetTempFileNameA)(FIOPFT->pfn[DPM_GETTEMPFILENAME]))(a,b,c,d)
  217. #define DPM_AreFileApisANSI() \
  218. ((typdpmAreFileApisANSI)(FIOPFT->pfn[DPM_AREFILEAPISANSI]))()
  219. #define DPM_CancelIo(a) \
  220. ((typdpmCancelIo)(FIOPFT->pfn[DPM_CANCELIO]))(a)
  221. #define DPM_CloseHandle(a) \
  222. ((typdpmCloseHandle)(FIOPFT->pfn[DPM_CLOSEHANDLE]))(a)
  223. #define DPM_CopyFile(a,b,c) \
  224. ((typdpmCopyFileA)(FIOPFT->pfn[DPM_COPYFILE]))(a,b,c)
  225. #define DPM_CopyFileEx(a,b,c,d,e,f) \
  226. ((typdpmCopyFileExA)(FIOPFT->pfn[DPM_COPYFILEEX]))(a,b,c,d,e,f)
  227. #define DPM_CreateDirectory(a,b) \
  228. ((typdpmCreateDirectoryA)(FIOPFT->pfn[DPM_CREATEDIRECTORY]))(a,b)
  229. #define DPM_CreateDirectoryEx(a,b,c) \
  230. ((typdpmCreateDirectoryExA)(FIOPFT->pfn[DPM_CREATEDIRECTORYEX]))(a,b,c)
  231. #define DPM_CreateFile(a,b,c,d,e,f,g) \
  232. ((typdpmCreateFileA)(FIOPFT->pfn[DPM_CREATEFILE]))(a,b,c,d,e,f,g)
  233. #define DPM_DeleteFile(a) \
  234. ((typdpmDeleteFileA)(FIOPFT->pfn[DPM_DELETEFILE]))(a)
  235. #define DPM_FindClose(a) \
  236. ((typdpmFindClose)(FIOPFT->pfn[DPM_FINDCLOSE]))(a)
  237. #define DPM_FindCloseChangeNotification(a) \
  238. ((typdpmFindCloseChangeNotification)(FIOPFT->pfn[DPM_FINDCLOSECHANGENOTIFICATION]))(a)
  239. #define DPM_FindFirstChangeNotification(a,b,c) \
  240. ((typdpmFindFirstChangeNotificationA)(FIOPFT->pfn[DPM_FINDFIRSTCHANGENOTIFICATION]))(a,b,c)
  241. #define DPM_FindFirstFile(a,b) \
  242. ((typdpmFindFirstFileA)(FIOPFT->pfn[DPM_FINDFIRSTFILE]))(a,b)
  243. #define DPM_FindNextChangeNotification(a) \
  244. ((typdpmFindNextChangeNotification)(FIOPFT->pfn[DPM_FINDNEXTCHANGENOTIFICATION]))(a)
  245. #define DPM_FindNextFile(a,b) \
  246. ((typdpmFindNextFileA)(FIOPFT->pfn[DPM_FINDNEXTFILE]))(a,b)
  247. #define DPM_FlushFileBuffers(a) \
  248. ((typdpmFlushFileBuffers)(FIOPFT->pfn[DPM_FLUSHFILEBUFFERS]))(a)
  249. #define DPM_GetCurrentDirectory(a,b) \
  250. ((typdpmGetCurrentDirectoryA)(FIOPFT->pfn[DPM_GETCURRENTDIRECTORY]))(a,b)
  251. #define DPM_GetDiskFreeSpace(a,b,c,d,e) \
  252. ((typdpmGetDiskFreeSpaceA)(FIOPFT->pfn[DPM_GETDISKFREESPACE]))(a,b,c,d,e )
  253. #define DPM_GetDiskFreeSpaceEx(a,b,c,d) \
  254. ((typdpmGetDiskFreeSpaceExA)(FIOPFT->pfn[DPM_GETDISKFREESPACEEX]))(a,b,c,d)
  255. #define DPM_GetDriveType(a) \
  256. ((typdpmGetDriveTypeA)(FIOPFT->pfn[DPM_GETDRIVETYPE]))(a)
  257. #define DPM_GetFileAttributes(a) \
  258. ((typdpmGetFileAttributesA)(FIOPFT->pfn[DPM_GETFILEATTRIBUTES]))(a)
  259. #define DPM_GetFileAttributesEx(a,b,c) \
  260. ((typdpmGetFileAttributesExA)(FIOPFT->pfn[DPM_GETFILEATTRIBUTESEX]))(a,b,c)
  261. #define DPM_GetFileInformationByHandle(a,b) \
  262. ((typdpmGetFileInformationByHandle)(FIOPFT->pfn[DPM_GETFILEINFORMATIONBYHANDLE]))(a,b)
  263. #define DPM_GetFileSize(a,b) \
  264. ((typdpmGetFileSize)(FIOPFT->pfn[DPM_GETFILESIZE]))(a,b)
  265. #define DPM_GetFileType(a) \
  266. ((typdpmGetFileType)(FIOPFT->pfn[DPM_GETFILETYPE]))(a)
  267. #define DPM_GetFullPathName(a,b,c,d) \
  268. ((typdpmGetFullPathNameA)(FIOPFT->pfn[DPM_GETFULLPATHNAME]))(a,b,c,d)
  269. #define DPM_GetLogicalDrives() \
  270. ((typdpmGetLogicalDrives)(FIOPFT->pfn[DPM_GETLOGICALDRIVES]))()
  271. #define DPM_GetLogicalDriveStrings(a,b) \
  272. ((typdpmGetLogicalDriveStringsA)(FIOPFT->pfn[DPM_GETLOGICALDRIVESTRINGS]))(a,b)
  273. #define DPM_GetLongPathName(a,b,c) \
  274. ((typdpmGetLongPathNameA)(FIOPFT->pfn[DPM_GETLONGPATHNAME]))(a,b,c)
  275. #define DPM_GetShortPathName(a,b,c) \
  276. ((typdpmGetShortPathNameA)(FIOPFT->pfn[DPM_GETSHORTPATHNAME]))(a,b,c)
  277. #define DPM_GetTempPath(a,b) \
  278. ((typdpmGetTempPathA)(FIOPFT->pfn[DPM_GETTEMPPATH]))(a,b)
  279. #define DPM_LockFile(a,b,c,d,e) \
  280. ((typdpmLockFile)(FIOPFT->pfn[DPM_LOCKFILE]))(a,b,c,d,e)
  281. #define DPM_MoveFile(a,b) \
  282. ((typdpmMoveFileA)(FIOPFT->pfn[DPM_MOVEFILE]))(a,b)
  283. #define DPM_MoveFileEx(a,b,c) \
  284. ((typdpmMoveFileExA)(FIOPFT->pfn[DPM_MOVEFILEEX]))(a,b,c)
  285. #define DPM_QueryDosDevice(a,b,c) \
  286. ((typdpmQueryDosDeviceA)(FIOPFT->pfn[DPM_QUERYDOSDEVICE]))(a,b,c)
  287. #define DPM_ReadFile(a,b,c,d,e) \
  288. ((typdpmReadFile)(FIOPFT->pfn[DPM_READFILE]))(a,b,c,d,e)
  289. #define DPM_ReadFileEx(a,b,c,d,e) \
  290. ((typdpmReadFileEx)(FIOPFT->pfn[DPM_READFILEEX]))(a,b,c,d,e)
  291. #define DPM_RemoveDirectory(a) \
  292. ((typdpmRemoveDirectoryA)(FIOPFT->pfn[DPM_REMOVEDIRECTORY]))(a)
  293. #define DPM_SearchPath(a,b,c,d,e,f) \
  294. ((typdpmSearchPathA)(FIOPFT->pfn[DPM_SEARCHPATH]))(a,b,c,d,e,f)
  295. #define DPM_SetCurrentDirectory(a) \
  296. ((typdpmSetCurrentDirectoryA)(FIOPFT->pfn[DPM_SETCURRENTDIRECTORY]))(a)
  297. #define DPM_SetEndOfFile(a) \
  298. ((typdpmSetEndOfFile)(FIOPFT->pfn[DPM_SETENDOFFILE]))(a)
  299. #define DPM_SetFileApisToANSI() \
  300. ((typdpmSetFileApisToANSI)(FIOPFT->pfn[DPM_SETFILEAPISTOANSI]))()
  301. #define DPM_SetFileApisToOEM() \
  302. ((typdpmSetFileApisToOEM)(FIOPFT->pfn[DPM_SETFILEAPISTOOEM]))()
  303. #define DPM_SetFileAttributes(a,b) \
  304. ((typdpmSetFileAttributesA)(FIOPFT->pfn[DPM_SETFILEATTRIBUTES]))(a,b)
  305. #define DPM_SetFilePointer(a,b,c,d) \
  306. ((typdpmSetFilePointer)(FIOPFT->pfn[DPM_SETFILEPOINTER]))(a,b,c,d)
  307. #define DPM_SetVolumeLabel(a,b) \
  308. ((typdpmSetVolumeLabelA)(FIOPFT->pfn[DPM_SETVOLUMELABEL]))(a,b)
  309. #define DPM_UnlockFile(a,b,c,d,e) \
  310. ((typdpmUnlockFile)(FIOPFT->pfn[DPM_UNLOCKFILE]))(a,b,c,d,e)
  311. #define DPM_WriteFile(a,b,c,d,e) \
  312. ((typdpmWriteFile)(FIOPFT->pfn[DPM_WRITEFILE]))(a,b,c,d,e)
  313. #define DPM_WriteFileEx(a,b,c,d,e) \
  314. ((typdpmWriteFileEx)(FIOPFT->pfn[DPM_WRITEFILEEX]))(a,b,c,d,e)
  315. #define DPM_GetTempFileNameW(a,b,c,d) \
  316. ((typdpmGetTempFileNameW)(FIOPFT->pfn[DPM_GETTEMPFILENAMEW]))(a,b,c,d)
  317. #define DPM_CopyFileW(a,b,c) \
  318. ((typdpmCopyFileW)(FIOPFT->pfn[DPM_COPYFILEW]))(a,b,c)
  319. #define DPM_CopyFileExW(a,b,c,d,e,f) \
  320. ((typdpmCopyFileExW)(FIOPFT->pfn[DPM_COPYFILEEXW]))(a,b,c,d,e,f)
  321. #define DPM_CreateDirectoryW(a,b) \
  322. ((typdpmCreateDirectoryW)(FIOPFT->pfn[DPM_CREATEDIRECTORYW]))(a,b)
  323. #define DPM_CreateDirectoryExW(a,b,c) \
  324. ((typdpmCreateDirectoryExW)(FIOPFT->pfn[DPM_CREATEDIRECTORYEXW]))(a,b,c)
  325. #define DPM_CreateFileW(a,b,c,d,e,f,g) \
  326. ((typdpmCreateFileW)(FIOPFT->pfn[DPM_CREATEFILEW]))(a,b,c,d,e,f,g)
  327. #define DPM_DeleteFileW(a) \
  328. ((typdpmDeleteFileW)(FIOPFT->pfn[DPM_DELETEFILEW]))(a)
  329. #define DPM_FindFirstFileW(a,b) \
  330. ((typdpmFindFirstFileW)(FIOPFT->pfn[DPM_FINDFIRSTFILEW]))(a,b)
  331. #define DPM_FindNextFileW(a,b) \
  332. ((typdpmFindNextFileW)(FIOPFT->pfn[DPM_FINDNEXTFILEW]))(a,b)
  333. #define DPM_GetCurrentDirectoryW(a,b) \
  334. ((typdpmGetCurrentDirectoryW)(FIOPFT->pfn[DPM_GETCURRENTDIRECTORYW]))(a,b)
  335. #define DPM_GetDiskFreeSpaceW(a,b,c,d,e) \
  336. ((typdpmGetDiskFreeSpaceW)(FIOPFT->pfn[DPM_GETDISKFREESPACEW]))(a,b,c,d,e )
  337. #define DPM_GetDiskFreeSpaceExW(a,b,c,d) \
  338. ((typdpmGetDiskFreeSpaceExW)(FIOPFT->pfn[DPM_GETDISKFREESPACEEXW]))(a,b,c,d)
  339. #define DPM_GetDriveTypeW(a) \
  340. ((typdpmGetDriveTypeW)(FIOPFT->pfn[DPM_GETDRIVETYPEW]))(a)
  341. #define DPM_GetFileAttributesW(a) \
  342. ((typdpmGetFileAttributesW)(FIOPFT->pfn[DPM_GETFILEATTRIBUTESW]))(a)
  343. #define DPM_GetFileAttributesExW(a,b,c) \
  344. ((typdpmGetFileAttributesExW)(FIOPFT->pfn[DPM_GETFILEATTRIBUTESEXW]))(a,b,c)
  345. #define DPM_GetFullPathNameW(a,b,c,d) \
  346. ((typdpmGetFullPathNameW)(FIOPFT->pfn[DPM_GETFULLPATHNAMEW]))(a,b,c,d)
  347. #define DPM_GetLogicalDriveStringsW(a,b) \
  348. ((typdpmGetLogicalDriveStringsW)(FIOPFT->pfn[DPM_GETLOGICALDRIVESTRINGSW]))(a,b)
  349. #define DPM_GetLongPathNameW(a,b,c) \
  350. ((typdpmGetLongPathNameW)(FIOPFT->pfn[DPM_GETLONGPATHNAMEW]))(a,b,c)
  351. #define DPM_GetShortPathNameW(a,b,c) \
  352. ((typdpmGetShortPathNameW)(FIOPFT->pfn[DPM_GETSHORTPATHNAMEW]))(a,b,c)
  353. #define DPM_GetTempPathW(a,b) \
  354. ((typdpmGetTempPathW)(FIOPFT->pfn[DPM_GETTEMPPATHW]))(a,b)
  355. #define DPM_MoveFileW(a,b) \
  356. ((typdpmMoveFileW)(FIOPFT->pfn[DPM_MOVEFILEW]))(a,b)
  357. #define DPM_MoveFileExW(a,b,c) \
  358. ((typdpmMoveFileExW)(FIOPFT->pfn[DPM_MOVEFILEEXW]))(a,b,c)
  359. #define DPM_QueryDosDeviceW(a,b,c) \
  360. ((typdpmQueryDosDeviceW)(FIOPFT->pfn[DPM_QUERYDOSDEVICEW]))(a,b,c)
  361. #define DPM_RemoveDirectoryW(a) \
  362. ((typdpmRemoveDirectoryW)(FIOPFT->pfn[DPM_REMOVEDIRECTORYW]))(a)
  363. #define DPM_SearchPathW(a,b,c,d,e,f) \
  364. ((typdpmSearchPathW)(FIOPFT->pfn[DPM_SEARCHPATHW]))(a,b,c,d,e,f)
  365. #define DPM_SetCurrentDirectoryW(a) \
  366. ((typdpmSetCurrentDirectoryW)(FIOPFT->pfn[DPM_SETCURRENTDIRECTORYW]))(a)
  367. #define DPM_SetFileAttributesW(a,b) \
  368. ((typdpmSetFileAttributesW)(FIOPFT->pfn[DPM_SETFILEATTRIBUTESW]))(a,b)
  369. #define DPM_SetVolumeLabelW(a,b) \
  370. ((typdpmSetVolumeLabelW)(FIOPFT->pfn[DPM_SETVOLUMELABELW]))(a,b)
  371. /*
  372. //#define DPM_FileIOCompletionRoutine(a,b,c) \
  373. //((typdpmFileIOCompletionRoutine)(FIOPFT->pfn[DPM_FILEIOCOMPLETIONROUTINE]))(a,b,c)
  374. */
  375. // Macros to dispatch Shimed API calls properly from the dpmfxxx.dll
  376. #define SHM_OpenFile(a,b,c) \
  377. (FIO_SHIM(DPM_OPENFILE, \
  378. typdpmOpenFile))(a,b,c)
  379. #define SHM__lclose(a) \
  380. (FIO_SHIM(DPM__LCLOSE, \
  381. typdpm_lclose))(a)
  382. #define SHM__lopen(a,b) \
  383. (FIO_SHIM(DPM__LOPEN, \
  384. typdpm_lopen))(a,b)
  385. #define SHM__lcreat(a,b) \
  386. (FIO_SHIM(DPM__LCREAT, \
  387. typdpm_lcreat))(a,b)
  388. #define SHM__llseek(a,b,c) \
  389. (FIO_SHIM(DPM__LLSEEK, \
  390. typdpm_llseek))(a,b,c)
  391. #define SHM__lread(a,b,c) \
  392. (FIO_SHIM(DPM__LREAD, \
  393. typdpm_lread))(a,b,c)
  394. #define SHM__lwrite(a,b,c) \
  395. (FIO_SHIM(DPM__LWRITE, \
  396. typdpm_lwrite))(a,b,c)
  397. #define SHM__hread(a,b,c) \
  398. (FIO_SHIM(DPM__HREAD, \
  399. typdpm_hread))(a,b,c)
  400. #define SHM__hwrite(a,b,c) \
  401. (FIO_SHIM(DPM__HWRITE, \
  402. typdpm_hwrite))(a,b,c)
  403. #define SHM_GetTempFileName(a,b,c,d) \
  404. (FIO_SHIM(DPM_GETTEMPFILENAME, \
  405. typdpmGetTempFileNameA))(a,b,c,d)
  406. #define SHM_AreFileApisANSI() \
  407. (FIO_SHIM(DPM_AREFILEAPISANSI, \
  408. typdpmAreFileApisANSI))()
  409. #define SHM_CancelIo(a) \
  410. (FIO_SHIM(DPM_CANCELIO, \
  411. typdpmCancelIo))(a)
  412. #define SHM_CloseHandle(a) \
  413. (FIO_SHIM(DPM_CLOSEHANDLE, \
  414. typdpmCloseHandle))(a)
  415. #define SHM_CopyFile(a,b,c) \
  416. (FIO_SHIM(DPM_COPYFILE, \
  417. typdpmCopyFileA))(a,b,c)
  418. #define SHM_CopyFileEx(a,b,c,d,e,f) \
  419. (FIO_SHIM(DPM_COPYFILEEX, \
  420. typdpmCopyFileExA))(a,b,c,d,e,f)
  421. #define SHM_CreateDirectory(a,b) \
  422. (FIO_SHIM(DPM_CREATEDIRECTORY, \
  423. typdpmCreateDirectoryA))(a,b)
  424. #define SHM_CreateDirectoryEx(a,b,c) \
  425. (FIO_SHIM(DPM_CREATEDIRECTORYEX, \
  426. typdpmCreateDirectoryExA))(a,b,c)
  427. #define SHM_CreateFile(a,b,c,d,e,f,g) \
  428. (FIO_SHIM(DPM_CREATEFILE, \
  429. typdpmCreateFileA))(a,b,c,d,e,f,g)
  430. #define SHM_DeleteFile(a) \
  431. (FIO_SHIM(DPM_DELETEFILE, \
  432. typdpmDeleteFileA))(a)
  433. #define SHM_FindClose(a) \
  434. (FIO_SHIM(DPM_FINDCLOSE, \
  435. typdpmFindClose))(a)
  436. #define SHM_FindCloseChangeNotification(a) \
  437. (FIO_SHIM(DPM_FINDCLOSECHANGENOTIFICATION, \
  438. typdpmFindCloseChangeNotification))(a)
  439. #define SHM_FindFirstChangeNotification(a,b,c) \
  440. (FIO_SHIM(DPM_FINDFIRSTCHANGENOTIFICATION, \
  441. typdpmFindFirstChangeNotificationA))(a,b,c)
  442. #define SHM_FindFirstFile(a,b) \
  443. (FIO_SHIM(DPM_FINDFIRSTFILE, \
  444. typdpmFindFirstFileA))(a,b)
  445. #define SHM_FindNextChangeNotification(a) \
  446. (FIO_SHIM(DPM_FINDNEXTCHANGENOTIFICATION, \
  447. typdpmFindNextChangeNotification))(a)
  448. #define SHM_FindNextFile(a,b) \
  449. (FIO_SHIM(DPM_FINDNEXTFILE, \
  450. typdpmFindNextFileA))(a,b)
  451. #define SHM_FlushFileBuffers(a) \
  452. (FIO_SHIM(DPM_FLUSHFILEBUFFERS, \
  453. typdpmFlushFileBuffers))(a)
  454. #define SHM_GetCurrentDirectory(a,b) \
  455. (FIO_SHIM(DPM_GETCURRENTDIRECTORY, \
  456. typdpmGetCurrentDirectoryA))(a,b)
  457. #define SHM_GetDiskFreeSpace(a,b,c,d,e) \
  458. (FIO_SHIM(DPM_GETDISKFREESPACE, \
  459. typdpmGetDiskFreeSpaceA))(a,b,c,d,e )
  460. #define SHM_GetDiskFreeSpaceEx(a,b,c,d) \
  461. (FIO_SHIM(DPM_GETDISKFREESPACEEX, \
  462. typdpmGetDiskFreeSpaceExA))(a,b,c,d)
  463. #define SHM_GetDriveType(a) \
  464. (FIO_SHIM(DPM_GETDRIVETYPE, \
  465. typdpmGetDriveTypeA))(a)
  466. #define SHM_GetFileAttributes(a) \
  467. (FIO_SHIM(DPM_GETFILEATTRIBUTES, \
  468. typdpmGetFileAttributesA))(a)
  469. #define SHM_GetFileAttributesEx(a,b,c) \
  470. (FIO_SHIM(DPM_GETFILEATTRIBUTESEX, \
  471. typdpmGetFileAttributesExA))(a,b,c)
  472. #define SHM_GetFileInformationByHandle(a,b) \
  473. (FIO_SHIM(DPM_GETFILEINFORMATIONBYHANDLE, \
  474. typdpmGetFileInformationByHandle))(a,b)
  475. #define SHM_GetFileSize(a,b) \
  476. (FIO_SHIM(DPM_GETFILESIZE, \
  477. typdpmGetFileSize))(a,b)
  478. #define SHM_GetFileType(a) \
  479. (FIO_SHIM(DPM_GETFILETYPE, \
  480. typdpmGetFileType))(a)
  481. #define SHM_GetFullPathName(a,b,c,d) \
  482. (FIO_SHIM(DPM_GETFULLPATHNAME, \
  483. typdpmGetFullPathNameA))(a,b,c,d)
  484. #define SHM_GetLogicalDrives() \
  485. (FIO_SHIM(DPM_GETLOGICALDRIVES, \
  486. typdpmGetLogicalDrives))()
  487. #define SHM_GetLogicalDriveStrings(a,b) \
  488. (FIO_SHIM(DPM_GETLOGICALDRIVESTRINGS, \
  489. typdpmGetLogicalDriveStringsA))(a,b)
  490. #define SHM_GetLongPathName(a,b,c) \
  491. (FIO_SHIM(DPM_GETLONGPATHNAME, \
  492. typdpmGetLongPathNameA))(a,b,c)
  493. #define SHM_GetShortPathName(a,b,c) \
  494. (FIO_SHIM(DPM_GETSHORTPATHNAME, \
  495. typdpmGetShortPathNameA))(a,b,c)
  496. #define SHM_GetTempPath(a,b) \
  497. (FIO_SHIM(DPM_GETTEMPPATH, \
  498. typdpmGetTempPathA))(a,b)
  499. #define SHM_LockFile(a,b,c,d,e) \
  500. (FIO_SHIM(DPM_LOCKFILE, \
  501. typdpmLockFile))(a,b,c,d,e)
  502. #define SHM_MoveFile(a,b) \
  503. (FIO_SHIM(DPM_MOVEFILE, \
  504. typdpmMoveFileA))(a,b)
  505. #define SHM_MoveFileEx(a,b,c) \
  506. (FIO_SHIM(DPM_MOVEFILEEX, \
  507. typdpmMoveFileExA))(a,b,c)
  508. #define SHM_QueryDosDevice(a,b,c) \
  509. (FIO_SHIM(DPM_QUERYDOSDEVICE, \
  510. typdpmQueryDosDeviceA))(a,b,c)
  511. #define SHM_ReadFile(a,b,c,d,e) \
  512. (FIO_SHIM(DPM_READFILE, \
  513. typdpmReadFile))(a,b,c,d,e)
  514. #define SHM_ReadFileEx(a,b,c,d,e) \
  515. (FIO_SHIM(DPM_READFILEEX, \
  516. typdpmReadFileEx))(a,b,c,d,e)
  517. #define SHM_RemoveDirectory(a) \
  518. (FIO_SHIM(DPM_REMOVEDIRECTORY, \
  519. typdpmRemoveDirectoryA))(a)
  520. #define SHM_SearchPath(a,b,c,d,e,f) \
  521. (FIO_SHIM(DPM_SEARCHPATH, \
  522. typdpmSearchPathA))(a,b,c,d,e,f)
  523. #define SHM_SetCurrentDirectory(a) \
  524. (FIO_SHIM(DPM_SETCURRENTDIRECTORY, \
  525. typdpmSetCurrentDirectoryA))(a)
  526. #define SHM_SetEndOfFile(a) \
  527. (FIO_SHIM(DPM_SETENDOFFILE, \
  528. typdpmSetEndOfFile))(a)
  529. #define SHM_SetFileApisToANSI(a) \
  530. (FIO_SHIM(DPM_SETFILEAPISTOANSI, \
  531. typdpmSetFileApisToANSI))(a)
  532. #define SHM_SetFileApisToOEM(a) \
  533. (FIO_SHIM(DPM_SETFILEAPISTOOEM, \
  534. typdpmSetFileApisToOEM))(a)
  535. #define SHM_SetFileAttributes(a,b) \
  536. (FIO_SHIM(DPM_SETFILEATTRIBUTES, \
  537. typdpmSetFileAttributesA))(a,b)
  538. #define SHM_SetFilePointer(a,b,c,d) \
  539. (FIO_SHIM(DPM_SETFILEPOINTER, \
  540. typdpmSetFilePointer))(a,b,c,d)
  541. #define SHM_SetVolumeLabel(a,b) \
  542. (FIO_SHIM(DPM_SETVOLUMELABEL, \
  543. typdpmSetVolumeLabelA))(a,b)
  544. #define SHM_UnlockFile(a,b,c,d,e) \
  545. (FIO_SHIM(DPM_UNLOCKFILE, \
  546. typdpmUnlockFile))(a,b,c,d,e)
  547. #define SHM_WriteFile(a,b,c,d,e) \
  548. (FIO_SHIM(DPM_WRITEFILE, \
  549. typdpmWriteFile))(a,b,c,d,e)
  550. #define SHM_WriteFileEx(a,b,c,d,e) \
  551. (FIO_SHIM(DPM_WRITEFILEEX, \
  552. typdpmWriteFileEx))(a,b,c,d,e)
  553. #define SHM_GetTempFileNameW(a,b,c,d) \
  554. (FIO_SHIM(DPM_GETTEMPFILENAMEW, \
  555. typdpmGetTempFileNameW))(a,b,c,d)
  556. #define SHM_CopyFileW(a,b,c) \
  557. (FIO_SHIM(DPM_COPYFILEW, \
  558. typdpmCopyFileW))(a,b,c)
  559. #define SHM_CopyFileExW(a,b,c,d,e,f) \
  560. (FIO_SHIM(DPM_COPYFILEEXW, \
  561. typdpmCopyFileExW))(a,b,c,d,e,f)
  562. #define SHM_CreateDirectoryW(a,b) \
  563. (FIO_SHIM(DPM_CREATEDIRECTORYW, \
  564. typdpmCreateDirectoryW))(a,b)
  565. #define SHM_CreateDirectoryExW(a,b,c) \
  566. (FIO_SHIM(DPM_CREATEDIRECTORYEXW, \
  567. typdpmCreateDirectoryExW))(a,b,c)
  568. #define SHM_CreateFileW(a,b,c,d,e,f,g) \
  569. (FIO_SHIM(DPM_CREATEFILEW, \
  570. typdpmCreateFileW))(a,b,c,d,e,f,g)
  571. #define SHM_DeleteFileW(a) \
  572. (FIO_SHIM(DPM_DELETEFILEW, \
  573. typdpmDeleteFileW))(a)
  574. #define SHM_FindFirstFileW(a,b) \
  575. (FIO_SHIM(DPM_FINDFIRSTFILEW, \
  576. typdpmFindFirstFileW))(a,b)
  577. #define SHM_FindNextFileW(a,b) \
  578. (FIO_SHIM(DPM_FINDNEXTFILEW, \
  579. typdpmFindNextFileW))(a,b)
  580. #define SHM_GetCurrentDirectoryW(a,b) \
  581. (FIO_SHIM(DPM_GETCURRENTDIRECTORYW, \
  582. typdpmGetCurrentDirectoryW))(a,b)
  583. #define SHM_GetDiskFreeSpaceW(a,b,c,d,e) \
  584. (FIO_SHIM(DPM_GETDISKFREESPACEW, \
  585. typdpmGetDiskFreeSpaceW))(a,b,c,d,e )
  586. #define SHM_GetDiskFreeSpaceExW(a,b,c,d) \
  587. (FIO_SHIM(DPM_GETDISKFREESPACEEXW, \
  588. typdpmGetDiskFreeSpaceExW))(a,b,c,d)
  589. #define SHM_GetDriveTypeW(a) \
  590. (FIO_SHIM(DPM_GETDRIVETYPEW, \
  591. typdpmGetDriveTypeW))(a)
  592. #define SHM_GetFileAttributesW(a) \
  593. (FIO_SHIM(DPM_GETFILEATTRIBUTESW, \
  594. typdpmGetFileAttributesW))(a)
  595. #define SHM_GetFileAttributesExW(a,b,c) \
  596. (FIO_SHIM(DPM_GETFILEATTRIBUTESEXW, \
  597. typdpmGetFileAttributesExW))(a,b,c)
  598. #define SHM_GetFullPathNameW(a,b,c,d) \
  599. (FIO_SHIM(DPM_GETFULLPATHNAMEW, \
  600. typdpmGetFullPathNameW))(a,b,c,d)
  601. #define SHM_GetLogicalDriveStringsW(a,b) \
  602. (FIO_SHIM(DPM_GETLOGICALDRIVESTRINGSW, \
  603. typdpmGetLogicalDriveStringsW))(a,b)
  604. #define SHM_GetLongPathNameW(a,b,c) \
  605. (FIO_SHIM(DPM_GETLONGPATHNAMEW, \
  606. typdpmGetLongPathNameW))(a,b,c)
  607. #define SHM_GetShortPathNameW(a,b,c) \
  608. (FIO_SHIM(DPM_GETSHORTPATHNAMEW, \
  609. typdpmGetShortPathNameW))(a,b,c)
  610. #define SHM_GetTempPathW(a,b) \
  611. (FIO_SHIM(DPM_GETTEMPPATHW, \
  612. typdpmGetTempPathW))(a,b)
  613. #define SHM_MoveFileW(a,b) \
  614. (FIO_SHIM(DPM_MOVEFILEW, \
  615. typdpmMoveFileW))(a,b)
  616. #define SHM_MoveFileExW(a,b,c) \
  617. (FIO_SHIM(DPM_MOVEFILEEXW, \
  618. typdpmMoveFileExW))(a,b,c)
  619. #define SHM_QueryDosDeviceW(a,b,c) \
  620. (FIO_SHIM(DPM_QUERYDOSDEVICEW, \
  621. typdpmQueryDosDeviceW))(a,b,c)
  622. #define SHM_RemoveDirectoryW(a) \
  623. (FIO_SHIM(DPM_REMOVEDIRECTORYW, \
  624. typdpmRemoveDirectoryW))(a)
  625. #define SHM_SearchPathW(a,b,c,d,e,f) \
  626. (FIO_SHIM(DPM_SEARCHPATHW, \
  627. typdpmSearchPathW))(a,b,c,d,e,f)
  628. #define SHM_SetCurrentDirectoryW(a) \
  629. (FIO_SHIM(DPM_SETCURRENTDIRECTORYW, \
  630. typdpmSetCurrentDirectoryW))(a)
  631. #define SHM_SetFileAttributesW(a,b) \
  632. (FIO_SHIM(DPM_SETFILEATTRIBUTESW, \
  633. typdpmSetFileAttributesW))(a,b)
  634. #define SHM_SetVolumeLabelW(a,b) \
  635. (FIO_SHIM(DPM_SETVOLUMELABELW, \
  636. typdpmSetVolumeLabelW))(a,b)
  637. #endif // _DPMF_FIOAPI_H_
  638. // These need to be in the same order as the FioFam enum definitions above and
  639. // the DpmFioTbl[] list below.
  640. // This instantiates memory for DpmFioStrs[] in mvdm\v86\monitor\i386\vdpm.c &
  641. // in mvdm\wow32\wdpm.c
  642. #ifdef _DPM_COMMON_
  643. const char *DpmFioStrs[] = {"OpenFile",
  644. "_lclose",
  645. "_lopen",
  646. "_lcreat",
  647. "_llseek",
  648. "_lread",
  649. "_lwrite",
  650. "_hread",
  651. "_hwrite",
  652. "GetTempFileNameA",
  653. "AreFileApisANSI",
  654. "CancelIo",
  655. "CloseHandle",
  656. "CopyFileA",
  657. "CopyFileExA",
  658. "CreateDirectoryA",
  659. "CreateDirectoryExA",
  660. "CreateFileA",
  661. "DeleteFileA",
  662. "FindClose",
  663. "FindCloseChangeNotification",
  664. "FindFirstChangeNotificationA",
  665. "FindFirstFileA",
  666. "FindNextChangeNotification",
  667. "FindNextFileA",
  668. "FlushFileBuffers",
  669. "GetCurrentDirectoryA",
  670. "GetDiskFreeSpaceA",
  671. "GetDiskFreeSpaceExA",
  672. "GetDriveTypeA",
  673. "GetFileAttributesA",
  674. "GetFileAttributesExA",
  675. "GetFileInformationByHandle",
  676. "GetFileSize",
  677. "GetFileType",
  678. "GetFullPathNameA",
  679. "GetLogicalDrives",
  680. "GetLogicalDriveStringsA",
  681. "GetLongPathNameA",
  682. "GetShortPathNameA",
  683. "GetTempPathA",
  684. "LockFile",
  685. "MoveFileA",
  686. "MoveFileExA",
  687. "QueryDosDeviceA",
  688. "ReadFile",
  689. "ReadFileEx",
  690. "RemoveDirectoryA",
  691. "SearchPathA",
  692. "SetCurrentDirectoryA",
  693. "SetEndOfFile",
  694. "SetFileApisToANSI",
  695. "SetFileApisToOEM",
  696. "SetFileAttributesA",
  697. "SetFilePointer",
  698. "SetVolumeLabelA",
  699. "UnlockFile",
  700. "WriteFile",
  701. "WriteFileEx",
  702. "GetTempFileNameW",
  703. "CopyFileW",
  704. "CopyFileExW",
  705. "CreateDirectoryW",
  706. "CreateDirectoryExW",
  707. "CreateFileW",
  708. "DeleteFileW",
  709. "FindFirstFileW",
  710. "FindNextFileW",
  711. "GetCurrentDirectoryW",
  712. "GetDiskFreeSpaceW",
  713. "GetDiskFreeSpaceExW",
  714. "GetDriveTypeW",
  715. "GetFileAttributesW",
  716. "GetFileAttributesExW",
  717. "GetFullPathNameW",
  718. "GetLogicalDriveStringsW",
  719. "GetLongPathNameW",
  720. "GetShortPathNameW",
  721. "GetTempPathW",
  722. "MoveFileW",
  723. "MoveFileExW",
  724. "QueryDosDeviceW",
  725. "RemoveDirectoryW",
  726. "SearchPathW",
  727. "SetCurrentDirectoryW",
  728. "SetFileAttributesW",
  729. "SetVolumeLabelW"};
  730. // "FileIOCompletionRoutine",
  731. // These need to be in the same order as the FioFam enum definitions and the
  732. // the DpmFioStrs[] list above.
  733. // This instantiates memory for DpmFioTbl[] in mvdm\v86\monitor\i386\vdpm.c
  734. PVOID DpmFioTbl[] = {OpenFile,
  735. _lclose,
  736. _lopen,
  737. _lcreat,
  738. _llseek,
  739. _lread,
  740. _lwrite,
  741. _hread,
  742. _hwrite,
  743. GetTempFileNameA,
  744. AreFileApisANSI,
  745. CancelIo,
  746. CloseHandle,
  747. CopyFileA,
  748. CopyFileExA,
  749. CreateDirectoryA,
  750. CreateDirectoryExA,
  751. CreateFileA,
  752. DeleteFileA,
  753. FindClose,
  754. FindCloseChangeNotification,
  755. FindFirstChangeNotificationA,
  756. FindFirstFileA,
  757. FindNextChangeNotification,
  758. FindNextFileA,
  759. FlushFileBuffers,
  760. GetCurrentDirectoryA,
  761. GetDiskFreeSpaceA,
  762. GetDiskFreeSpaceExA,
  763. GetDriveTypeA,
  764. GetFileAttributesA,
  765. GetFileAttributesExA,
  766. GetFileInformationByHandle,
  767. GetFileSize,
  768. GetFileType,
  769. GetFullPathNameA,
  770. GetLogicalDrives,
  771. GetLogicalDriveStringsA,
  772. GetLongPathNameA,
  773. GetShortPathNameA,
  774. GetTempPathA,
  775. LockFile,
  776. MoveFileA,
  777. MoveFileExA,
  778. QueryDosDeviceA,
  779. ReadFile,
  780. ReadFileEx,
  781. RemoveDirectoryA,
  782. SearchPathA,
  783. SetCurrentDirectoryA,
  784. SetEndOfFile,
  785. SetFileApisToANSI,
  786. SetFileApisToOEM,
  787. SetFileAttributesA,
  788. SetFilePointer,
  789. SetVolumeLabelA,
  790. UnlockFile,
  791. WriteFile,
  792. WriteFileEx,
  793. GetTempFileNameW,
  794. CopyFileW,
  795. CopyFileExW,
  796. CreateDirectoryW,
  797. CreateDirectoryExW,
  798. CreateFileW,
  799. DeleteFileW,
  800. FindFirstFileW,
  801. FindNextFileW,
  802. GetCurrentDirectoryW,
  803. GetDiskFreeSpaceW,
  804. GetDiskFreeSpaceExW,
  805. GetDriveTypeW,
  806. GetFileAttributesW,
  807. GetFileAttributesExW,
  808. GetFullPathNameW,
  809. GetLogicalDriveStringsW,
  810. GetLongPathNameW,
  811. GetShortPathNameW,
  812. GetTempPathW,
  813. MoveFileW,
  814. MoveFileExW,
  815. QueryDosDeviceW,
  816. RemoveDirectoryW,
  817. SearchPathW,
  818. SetCurrentDirectoryW,
  819. SetFileAttributesW,
  820. SetVolumeLabelW};
  821. // FileIOCompletionRoutine,
  822. #define NUM_HOOKED_FIO_APIS ((sizeof DpmFioTbl)/(sizeof DpmFioTbl[0]))
  823. // This instantiates memory for DpmFioFam in mvdm\v86\monitor\i386\vdpm.c
  824. FAMILY_TABLE DpmFioFam = {NUM_HOOKED_FIO_APIS, 0, 0, 0, 0, DpmFioTbl};
  825. #endif // _DPM_COMMON_