26 #define WIN32_NO_STATUS 28 #undef WIN32_NO_STATUS 34 #include "dokan_vector.h" 40 typedef struct _DOKAN_INSTANCE_THREADINFO {
42 PTP_CLEANUP_GROUP CleanupGroup;
43 TP_CALLBACK_ENVIRON CallbackEnvironment;
55 typedef struct _DOKAN_INSTANCE {
64 WCHAR MountPoint[MAX_PATH];
104 typedef struct _DOKAN_OPEN_INFO {
105 CRITICAL_SECTION CriticalSection;
108 PDOKAN_VECTOR DirList;
109 PWCHAR DirListSearchPattern;
122 LONG64 CloseUserContext;
138 typedef struct _DOKAN_IO_BATCH {
161 EVENT_CONTEXT EventContext[1];
171 typedef struct _DOKAN_IO_EVENT {
199 #define IOEVENT_RESULT_BUFFER_SIZE(ioEvent) \ 200 ((ioEvent)->EventResultSize >= offsetof(EVENT_INFORMATION, Buffer) \ 201 ? (ioEvent)->EventResultSize - offsetof(EVENT_INFORMATION, Buffer) \ 205 int DokanStart(_In_ PDOKAN_INSTANCE DokanInstance);
207 BOOL SendToDevice(LPCWSTR DeviceName, DWORD IoControlCode, PVOID InputBuffer,
208 ULONG InputLength, PVOID OutputBuffer, ULONG OutputLength,
209 PULONG ReturnedLength);
212 GetRawDeviceName(LPCWSTR DeviceName, LPWSTR DestinationBuffer,
213 rsize_t DestinationBufferSizeInElements);
215 VOID ALIGN_ALLOCATION_SIZE(PLARGE_INTEGER size, PDOKAN_OPTIONS DokanOptions);
217 BOOL DokanMount(PDOKAN_INSTANCE DokanInstance,
218 PDOKAN_OPTIONS DokanOptions);
220 BOOL IsMountPointDriveLetter(LPCWSTR mountPoint);
222 VOID EventCompletion(PDOKAN_IO_EVENT EventInfo);
224 VOID CreateDispatchCommon(PDOKAN_IO_EVENT IoEvent, ULONG SizeOfEventInfo,
225 BOOL UseExtraMemoryPool, BOOL ClearNonPoolBuffer);
227 VOID DispatchDirectoryInformation(PDOKAN_IO_EVENT IoEvent);
229 VOID DispatchQueryInformation(PDOKAN_IO_EVENT IoEvent);
231 VOID DispatchQueryVolumeInformation(PDOKAN_IO_EVENT IoEvent);
233 VOID DispatchSetInformation(PDOKAN_IO_EVENT IoEvent);
235 VOID DispatchRead(PDOKAN_IO_EVENT IoEvent);
237 VOID DispatchWrite(PDOKAN_IO_EVENT IoEvent);
239 VOID DispatchCreate(PDOKAN_IO_EVENT IoEvent);
241 VOID DispatchClose(PDOKAN_IO_EVENT IoEvent);
243 VOID DispatchCleanup(PDOKAN_IO_EVENT IoEvent);
245 VOID DispatchFlush(PDOKAN_IO_EVENT IoEvent);
247 VOID DispatchLock(PDOKAN_IO_EVENT IoEvent);
249 VOID DispatchQuerySecurity(PDOKAN_IO_EVENT IoEvent);
251 VOID DispatchSetSecurity(PDOKAN_IO_EVENT IoEvent);
253 BOOL SendReleaseIRP(LPCWSTR DeviceName);
255 BOOL SendGlobalReleaseIRP(LPCWSTR MountPoint);
257 VOID CheckFileName(LPWSTR FileName);
259 VOID ReleaseDokanOpenInfo(PDOKAN_IO_EVENT IoEvent);
261 VOID DokanNotifyUnmounted(PDOKAN_INSTANCE DokanInstance);
PDOKAN_OPEN_INFO DokanOpenInfo
Definition: dokani.h:175
LONG64 UserContext
Definition: dokani.h:113
PDOKAN_INSTANCE DokanInstance
Definition: dokani.h:173
HANDLE KeepaliveHandle
Definition: dokani.h:88
ULONG OpenCount
Definition: dokani.h:119
Dokan mount instance informations.
Definition: dokani.h:55
ULONG DeviceNumber
Definition: dokani.h:68
PEVENT_CONTEXT EventContext
Definition: dokani.h:191
BOOL PoolAllocated
Definition: dokani.h:149
LPWSTR CloseFileName
Definition: dokani.h:121
BOOL FileSystemStopped
Definition: dokani.h:90
BOOL IsDirectory
Definition: dokani.h:117
PDOKAN_INSTANCE DokanInstance
Definition: dokani.h:140
Dokan IO batch buffer.
Definition: dokani.h:138
BOOLEAN UnimplementedFindFilesWithPattern
Definition: dokani.h:111
PDOKAN_OPTIONS DokanOptions
Definition: dokani.h:72
PEVENT_CONTEXT EventContext
Definition: dokani.h:124
BOOL PoolAllocated
Definition: dokani.h:187
Dokan IO Event.
Definition: dokani.h:171
LONG EventContextBatchCount
Definition: dokani.h:155
Dokan open file informations.
Definition: dokani.h:104
BOOL MainPullThread
Definition: dokani.h:144
LIST_ENTRY ListEntry
Definition: dokani.h:76
LONG UnmountedCalled
Definition: dokani.h:95
PDOKAN_IO_BATCH IoBatch
Definition: dokani.h:196
HANDLE DeviceClosedWaitHandle
Definition: dokani.h:82
ULONG MountId
Definition: dokani.h:70
PDOKAN_INSTANCE DokanInstance
Definition: dokani.h:107
Dokan file information on the current operation.
Definition: dokan.h:181
HANDLE Device
Definition: dokani.h:80
ULONG EventId
Definition: dokani.h:115
CRITICAL_SECTION CriticalSection
Definition: dokani.h:57
ULONG EventResultSize
Definition: dokani.h:182
PDOKAN_OPERATIONS DokanOperations
Definition: dokani.h:74
HANDLE NotifyHandle
Definition: dokani.h:86
HANDLE GlobalDevice
Definition: dokani.h:78
DOKAN_FILE_INFO DokanFileInfo
Definition: dokani.h:189
DOKAN_INSTANCE_THREADINFO ThreadInfo
Definition: dokani.h:84
DWORD NumberOfBytesTransferred
Definition: dokani.h:142
PEVENT_INFORMATION EventResult
Definition: dokani.h:180