annotate fuhtark_test/include/winapi/filehc.h @ 1501:f40d9d814c08 default tip main

did: correct vulkan-api generator
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 23:34:29 +0700
parents 91c8c3b7cbf0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1500
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
1 /**
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
2 * This file has no copyright assigned and is placed in the Public Domain.
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
3 * This file is part of the w64 mingw-runtime package.
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
4 * No warranty is given; refer to the file DISCLAIMER within this package.
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
5 */
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
6 #ifndef _FILEHC_H_
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
7 #define _FILEHC_H_
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
8
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
9 #ifdef __cplusplus
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
10 extern "C" {
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
11 #endif
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
12
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
13 typedef VOID (*PFN_IO_COMPLETION)(struct FIO_CONTEXT *pContext,struct FH_OVERLAPPED *lpo,DWORD cb,DWORD dwCompletionStatus);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
14
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
15 struct FH_OVERLAPPED {
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
16 UINT_PTR Internal;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
17 UINT_PTR InternalHigh;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
18 DWORD Offset;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
19 DWORD OffsetHigh;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
20 HANDLE hEvent;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
21 PFN_IO_COMPLETION pfnCompletion;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
22 UINT_PTR Reserved1;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
23 UINT_PTR Reserved2;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
24 UINT_PTR Reserved3;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
25 UINT_PTR Reserved4;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
26 };
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
27
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
28 typedef struct FH_OVERLAPPED *PFH_OVERLAPPED;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
29
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
30 typedef struct FIO_CONTEXT {
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
31 DWORD m_dwTempHack;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
32 DWORD m_dwSignature;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
33 HANDLE m_hFile;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
34 DWORD m_dwLinesOffset;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
35 DWORD m_dwHeaderLength;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
36 } FIO_CONTEXT;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
37
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
38 typedef FIO_CONTEXT *PFIO_CONTEXT;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
39
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
40 #ifndef WINAPI
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
41 #define WINAPI __stdcall
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
42 #endif
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
43
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
44 #define FILEHC_EXPORT __declspec(dllimport)
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
45
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
46 FILEHC_EXPORT WINBOOL WINAPI FIOInitialize(DWORD dwFlags);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
47 FILEHC_EXPORT WINBOOL WINAPI FIOTerminate(VOID);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
48 FILEHC_EXPORT WINBOOL WINAPI FIOReadFile(PFIO_CONTEXT pContext,LPVOID lpBuffer,DWORD BytesToRead,FH_OVERLAPPED *lpo);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
49 FILEHC_EXPORT WINBOOL WINAPI FIOReadFileEx(PFIO_CONTEXT pContext,LPVOID lpBuffer,DWORD BytesToRead,DWORD BytesAvailable,FH_OVERLAPPED *lpo,WINBOOL fFinalWrite,WINBOOL fIncludeTerminator);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
50 FILEHC_EXPORT WINBOOL WINAPI FIOWriteFile(PFIO_CONTEXT pContext,LPCVOID lpBuffer,DWORD BytesToWrite,FH_OVERLAPPED *lpo);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
51 FILEHC_EXPORT WINBOOL WINAPI FIOWriteFileEx(PFIO_CONTEXT pContext,LPVOID lpBuffer,DWORD BytesToWrite,DWORD BytesAvailable,FH_OVERLAPPED *lpo,WINBOOL fFinalWrite,WINBOOL fIncludeTerminator);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
52
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
53 typedef HANDLE (WINAPI *FCACHE_CREATE_CALLBACK)(LPSTR lpstrName,LPVOID lpvData,DWORD *cbFileSize,DWORD *cbFileSizeHigh);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
54 typedef HANDLE (WINAPI *FCACHE_RICHCREATE_CALLBACK) (LPSTR lpstrName,LPVOID lpvData,DWORD *cbFileSize,DWORD *cbFileSizeHigh,WINBOOL *pfDidWeScanIt,WINBOOL *pfIsStuffed,WINBOOL *pfStoredWithDots,WINBOOL *pfStoredWithTerminatingDot);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
55
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
56 FILEHC_EXPORT WINBOOL WINAPI InitializeCache();
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
57 FILEHC_EXPORT WINBOOL WINAPI TerminateCache();
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
58 FILEHC_EXPORT PFIO_CONTEXT WINAPI AssociateFile(HANDLE hFile);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
59 FILEHC_EXPORT PFIO_CONTEXT WINAPI AssociateFileEx(HANDLE hFile,WINBOOL fStoreWithDots,WINBOOL fStoredWithTerminatingDot);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
60 FILEHC_EXPORT void WINAPI AddRefContext(PFIO_CONTEXT);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
61 FILEHC_EXPORT void WINAPI ReleaseContext(PFIO_CONTEXT);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
62 FILEHC_EXPORT WINBOOL WINAPI CloseNonCachedFile(PFIO_CONTEXT);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
63 FILEHC_EXPORT FIO_CONTEXT *WINAPI CacheCreateFile(LPSTR lpstrName,FCACHE_CREATE_CALLBACK pfnCallBack,LPVOID lpv,WINBOOL fAsyncContext);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
64 FILEHC_EXPORT FIO_CONTEXT *WINAPI CacheRichCreateFile(LPSTR lpstrName,FCACHE_RICHCREATE_CALLBACK pfnCallBack,LPVOID lpv,WINBOOL fAsyncContext);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
65 FILEHC_EXPORT void WINAPI CacheRemoveFiles(LPSTR lpstrName,WINBOOL fAllPrefixes);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
66 FILEHC_EXPORT WINBOOL WINAPI InsertFile(LPSTR lpstrName,FIO_CONTEXT *pContext,WINBOOL fKeepReference);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
67 FILEHC_EXPORT DWORD WINAPI GetFileSizeFromContext(FIO_CONTEXT *pContext,DWORD *pcbFileSizeHigh);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
68
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
69 typedef int (WINAPI *CACHE_KEY_COMPARE)(DWORD cbKey1,LPBYTE lpbKey1,DWORD cbKey2,LPBYTE lpbKey2);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
70 typedef DWORD (WINAPI *CACHE_KEY_HASH)(LPBYTE lpbKey,DWORD cbKey);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
71 typedef WINBOOL (WINAPI *CACHE_READ_CALLBACK)(DWORD cb,LPBYTE lpb,LPVOID lpvContext);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
72 typedef void (WINAPI *CACHE_DESTROY_CALLBACK)(DWORD cb,LPBYTE lpb);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
73 typedef WINBOOL (WINAPI *CACHE_ACCESS_CHECK)(PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE hClientToken,DWORD dwDesiredAccess,PGENERIC_MAPPING GenericMapping,PRIVILEGE_SET *PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccess,LPBOOL AccessStatus);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
74
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
75 struct NAME_CACHE_CONTEXT {
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
76 DWORD m_dwSignature;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
77 };
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
78
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
79 typedef struct NAME_CACHE_CONTEXT *PNAME_CACHE_CONTEXT;
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
80
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
81 FILEHC_EXPORT PNAME_CACHE_CONTEXT WINAPI FindOrCreateNameCache(LPSTR lpstrName,CACHE_KEY_COMPARE pfnKeyCompare,CACHE_KEY_HASH pfnKeyHash,CACHE_DESTROY_CALLBACK pfnKeyDestroy,CACHE_DESTROY_CALLBACK pfnDataDestroy);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
82 FILEHC_EXPORT long WINAPI ReleaseNameCache(PNAME_CACHE_CONTEXT pNameCache);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
83 FILEHC_EXPORT WINBOOL WINAPI SetNameCacheSecurityFunction(PNAME_CACHE_CONTEXT pNameCache,CACHE_ACCESS_CHECK pfnAccessCheck);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
84 FILEHC_EXPORT WINBOOL WINAPI FindContextFromName(PNAME_CACHE_CONTEXT pNameCache,LPBYTE lpbName,DWORD cbName,CACHE_READ_CALLBACK pfnCallback,LPVOID lpvClientContext,HANDLE hToken,ACCESS_MASK accessMask,FIO_CONTEXT **ppContext);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
85 FILEHC_EXPORT WINBOOL WINAPI FindSyncContextFromName(PNAME_CACHE_CONTEXT pNameCache,LPBYTE lpbName,DWORD cbName,CACHE_READ_CALLBACK pfnCallback,LPVOID lpvClientContext,HANDLE hToken,ACCESS_MASK accessMask,FIO_CONTEXT **ppContext);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
86 FILEHC_EXPORT WINBOOL WINAPI AssociateContextWithName(PNAME_CACHE_CONTEXT pNameCache,LPBYTE lpbName,DWORD cbName,LPBYTE lpbData,DWORD cbData,PGENERIC_MAPPING pGenericMapping,PSECURITY_DESCRIPTOR pSecurityDescriptor,FIO_CONTEXT *pContext,WINBOOL fKeepReference);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
87 FILEHC_EXPORT WINBOOL WINAPI InvalidateName(PNAME_CACHE_CONTEXT pNameCache,LPBYTE lpbName,DWORD cbName);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
88 FILEHC_EXPORT FIO_CONTEXT *WINAPI ProduceDotStuffedContext(FIO_CONTEXT *pContext,LPSTR lpstrName,WINBOOL fWantItDotStuffed);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
89 FILEHC_EXPORT WINBOOL WINAPI ProduceDotStuffedContextInContext(FIO_CONTEXT *pContextSource,FIO_CONTEXT *pContextDestination,WINBOOL fWantItDotStuffed,WINBOOL *pfModified);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
90 FILEHC_EXPORT WINBOOL WINAPI GetIsFileDotTerminated(FIO_CONTEXT *pContext);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
91 FILEHC_EXPORT void WINAPI SetIsFileDotTerminated(FIO_CONTEXT *pContext,WINBOOL fIsDotTerminated);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
92 FILEHC_EXPORT WINBOOL WINAPI SetDotStuffingOnWrites(FIO_CONTEXT *pContext,WINBOOL fEnable,WINBOOL fStripDots);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
93 FILEHC_EXPORT WINBOOL WINAPI SetDotScanningOnWrites(FIO_CONTEXT *pContext,WINBOOL fEnable);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
94 FILEHC_EXPORT void WINAPI CompleteDotStuffingOnWrites(FIO_CONTEXT *pContext,WINBOOL fStripDots);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
95 FILEHC_EXPORT WINBOOL WINAPI SetDotScanningOnReads(FIO_CONTEXT *pContext,WINBOOL fEnable);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
96 FILEHC_EXPORT WINBOOL WINAPI GetDotStuffState(FIO_CONTEXT *pContext,WINBOOL fReads,WINBOOL *pfStuffed,WINBOOL *pfStoredWithDots);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
97 FILEHC_EXPORT void WINAPI SetDotStuffState(FIO_CONTEXT *pContext,WINBOOL fKnown,WINBOOL fRequiresStuffing);
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
98
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
99 #ifdef __cplusplus
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
100 }
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
101 #endif
91c8c3b7cbf0 add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff changeset
102 #endif