PXENBUS_DEBUG_CALLBACK DebugCallback;
XENBUS_STORE_INTERFACE StoreInterface;
PXENBUS_THREAD MonitorThread;
- KEVENT MonitorEvent;
LIST_ENTRY List;
};
loop:
KeReleaseSpinLock(&Context->Lock, Irql);
-
- KeSetEvent(&Context->MonitorEvent, IO_NO_INCREMENT, FALSE);
}
Trace("====>\n");
InitializeListHead(&(*Context)->List);
KeInitializeSpinLock(&(*Context)->Lock);
- KeInitializeEvent(&(*Context)->MonitorEvent, NotificationEvent, FALSE);
-
status = ThreadCreate(CacheMonitor, *Context, &(*Context)->MonitorThread);
if (!NT_SUCCESS(status))
goto fail2;
fail2:
Error("fail2\n");
- RtlZeroMemory(&(*Context)->MonitorEvent, sizeof (KEVENT));
-
RtlZeroMemory(&(*Context)->Lock, sizeof (KSPIN_LOCK));
RtlZeroMemory(&(*Context)->List, sizeof (LIST_ENTRY));
ThreadJoin(Context->MonitorThread);
Context->MonitorThread = NULL;
- RtlZeroMemory(&Context->MonitorEvent, sizeof (KEVENT));
-
RtlZeroMemory(&Context->Lock, sizeof (KSPIN_LOCK));
RtlZeroMemory(&Context->List, sizeof (LIST_ENTRY));