Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results
The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
but when searching it on google there is no one use or an example about it.
is it have many disadvantage or something?
void UpdateTable( _In_ ULONG ProcessId, _In_ bool Insert ) { sync::AutoLock _(m_lock); // RAII fast mutex lock if (Insert) // insert { auto entry = ExAllocatePool(PagedPool, sizeof(MY_STRUCT_ENTRY)); if (entry) { RtlInsertEntryHashTable(m_hashTable, &entry->entry, ULONG_PTR(ProcessId), nullptr); // m_hashTable is a class member; } } else // remove { auto entry = RtlLookupEntryHashTable(m_hashTable, ULONG_PTR(ProcessId), nullptr); if (entry) { RtlRemoveEntryHashTable(m_hashTable, entry, nullptr); ExFreePoo(entry); } } } void Clear( ) { sync::AutoLock _(m_lock); // RAII fast mutex lock if (m_hashTable) // a class member; { RTL_DYNAMIC_HASH_TABLE_ENUMERATOR enumrator = {}; if (RtlInitEnumerationHashTable(m_hashTable, &enumrator)) { while (true) { auto entry = RtlEnumerateEntryHashTable(m_hashTable, &enumrator); if (entry == nullptr) { break; } RtlRemoveEntryHashTable(m_hashTable, entry, nullptr); ExFreePool(entry); } RtlEndEnumerationHashTable(m_hashTable, &enumrator); } RtlDeleteHashTable(m_hashTable); } }
Upcoming OSR Seminars | ||
---|---|---|
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead! | ||
Kernel Debugging | 30 January 2023 | Live, Online |
Developing Minifilters | 20 March 2023 | Live, Online |
Internals & Software Drivers | 17 April 2023 | Live, Online |
Writing WDF Drivers | 22 May 2023 | Live, Online |
Comments
There is some examples here: http://scrammed.blogspot.com/2014/11/solution-to-some-of-windows-kernel.html