Microsoft-Activation-Scripts/watermark WIN10/watermark_disabler/util_raii.hpp
Yasser Tahiri c01b961423 Summary
2020-12-12 23:02:14 +01:00

30 lines
462 B
C++

#pragma once
#include <memory>
#include <ntifs.h>
namespace impl
{
struct unique_pool
{
void operator( )( void* pool )
{
if ( pool )
ExFreePoolWithTag( pool, 0 );
}
};
using pool = std::unique_ptr<void, unique_pool>;
struct unique_object
{
void operator( )( void* object )
{
if ( object )
ObfDereferenceObject( object );
}
};
template <typename T>
using object = std::unique_ptr<std::remove_pointer_t<T>, unique_object>;
}