VOID NTAPI MainWindowShowingCallback( _In_opt_ PVOID Parameter, _In_opt_ PVOID Context ) { AddRemoveDeviceChangeCallback(); }
VOID DiskEntryDeleteProcedure( _In_ PVOID Object, _In_ ULONG Flags ) { PDV_DISK_ENTRY entry = Object; PhAcquireQueuedLockExclusive(&DiskDrivesListLock); PhRemoveItemList(DiskDrivesList, PhFindItemList(DiskDrivesList, entry)); PhReleaseQueuedLockExclusive(&DiskDrivesListLock); DeleteDiskId(&entry->Id); PhClearReference(&entry->DiskName); PhDeleteCircularBuffer_ULONG64(&entry->ReadBuffer); PhDeleteCircularBuffer_ULONG64(&entry->WriteBuffer); AddRemoveDeviceChangeCallback(); }
PDV_DISK_ENTRY CreateDiskEntry( _In_ PDV_DISK_ID Id ) { PDV_DISK_ENTRY entry; entry = PhCreateObject(sizeof(DV_DISK_ENTRY), DiskDriveEntryType); memset(entry, 0, sizeof(DV_DISK_ENTRY)); entry->DiskIndex = ULONG_MAX; CopyDiskId(&entry->Id, Id); PhInitializeCircularBuffer_ULONG64(&entry->ReadBuffer, PhGetIntegerSetting(L"SampleCount")); PhInitializeCircularBuffer_ULONG64(&entry->WriteBuffer, PhGetIntegerSetting(L"SampleCount")); PhAcquireQueuedLockExclusive(&DiskDrivesListLock); PhAddItemList(DiskDrivesList, entry); PhReleaseQueuedLockExclusive(&DiskDrivesListLock); AddRemoveDeviceChangeCallback(); return entry; }