窗口上HANDLE的来源

Source of a HANDLE on windows

本文关键字:HANDLE 窗口      更新时间:2023-10-16

我目前正在做一个项目(用C语言(,在这个项目中我使用了不同的win-HANDLE(互斥、信号量、线程…(。我的问题是:有没有一种方法可以检索HANDLE链接到的内核对象的类型?类似于:Get_HANDLE_source((还是Is_thread_HANDLE((?

谢谢你,

干杯!

如NtQueryObject所述。但最好使用一些OO概念:

struct HandleVtable
    {
    /* function pointer to appropriate implementation */
    };
struct HandleWrapper
    {
    struct HandleVtable *vptr;
    HANDLE handle;
    };

对于每种类型的句柄,创建一个静态常量HandleVtable并用函数指针填充它。在创建HandleWrappers时,设置vptr,使其指向相应的vtable,并让所有函数调用都通过该vtable。为此,最好编写一个将指针指向HandleWrapper的包装函数。

现在您将在C.中拥有OOP。