| 35 | */ |
| 36 | static DWORD fls_sync_io= FLS_OUT_OF_INDEXES; |
| 37 | HANDLE win_get_syncio_event() |
| 38 | { |
| 39 | HANDLE h; |
| 40 | |
| 41 | h= (HANDLE) FlsGetValue(fls_sync_io); |
| 42 | if (h) |
| 43 | { |
| 44 | return h; |
| 45 | } |
| 46 | h= CreateEventA(NULL, FALSE, FALSE, NULL); |
| 47 | /* Set low-order bit to keeps I/O completion from being queued */ |
| 48 | h= (HANDLE)((uintptr_t) h | 1); |
| 49 | FlsSetValue(fls_sync_io, h); |
| 50 | return h; |
| 51 | } |
| 52 | #include <WinIoCtl.h> |
| 53 | static void __stdcall win_free_syncio_event(void *data) |
| 54 | { |
no outgoing calls
no test coverage detected