Dokan IO batch buffer. More...
#include <dokani.h>
Data Fields | |
PDOKAN_INSTANCE | DokanInstance |
DWORD | NumberOfBytesTransferred |
BOOL | MainPullThread |
BOOL | PoolAllocated |
LONG | EventContextBatchCount |
EVENT_CONTEXT | EventContext [1] |
Detailed Description
Dokan IO batch buffer.
This is used to pull batch of events from the kernel.
For each EVENT_CONTEXT that is pulled from the kernel, a DOKAN_IO_EVENT is allocated with its EventContext pointer placed to the IoBatch buffer. DOKAN_IO_EVENT will be dispatched for being processed by a pool thread (or the main pull thread). When the event is processed, the DOKAN_IO_EVENT will be freed and the EventContextBatchCount will be decremented. When it reaches 0, the buffer is free or pushed to the memory pool.
Field Documentation
PDOKAN_INSTANCE PDOKAN_IO_BATCH::DokanInstance |
Dokan instance linked to the batch
EVENT_CONTEXT PDOKAN_IO_BATCH::EventContext[1] |
The actual buffer used to pull events from kernel. It may contain multiple EVENT_CONTEXT depending on what the kernel has to offer right now. A high activity will generate multiple EVENT_CONTEXT to be batched in a single pull.
LONG PDOKAN_IO_BATCH::EventContextBatchCount |
Number of actual EVENT_CONTEXT stored in EventContext. This is used as a shared buffer counter that is decremented when an event is processed. When it reaches 0, the buffer is free or pushed to the memory pool.
BOOL PDOKAN_IO_BATCH::MainPullThread |
Whether it is used by the Main pull thread that wait indefinitely in kernel compared to volatile pool threads
DWORD PDOKAN_IO_BATCH::NumberOfBytesTransferred |
Size read from kernel that is hold in EventContext
BOOL PDOKAN_IO_BATCH::PoolAllocated |
Whether this object was allocated from the memory pool. Large Write events will allocate a specific buffer that will not come from the memory pool.
The documentation for this struct was generated from the following file: