簡體   English   中英

在內核模式驅動程序窗口中獲取變量數據類型

[英]Get variables datatypes in kernel mode drivers windows

我想知道內核模式驅動程序中是否有任何方法可以提供變量的數據類型。 就像我聲明:

INT i = 0;

並詢問“i”的數據類型,它將返回INT。 對於結構,我也想要同樣的東西。

這不可能。 內核是有效的組裝。 如果你得到一個PVOID ,那是一個 32 位或 64 位地址,你甚至不知道它指向的對象的大小。

你可以像這樣聲明你的函數:

void myapi(void *param, enum type param_type);

以及相關的枚舉:

enum type {
    TYPE_INT,
    TYPE_CHAR,
    // more types
 };

擁有這樣的身體:

void myapi(void *param, enum type param_type)
{
    if (param_type == TYPE_INT) {
        int *intptr = param;
        // do something with intptr
    } else if (param_type == TYPE_CHAR) {
        char *charptr = param;
        // do something with charptr
    // cases for other types
    }
}

你會這樣稱呼它:

int myint = 0;
myapi(&myint, TYPE_INT);
char mychar = 'x';
myapi(&mychar, TYPE_CHAR);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM