2017-11-18 85 views
0

我正在跟蹤對文件進行的更改並希望「記住」,並將一些信息從預操作回調傳遞到操作後回調。迷你過濾器驅動程序|將信息從預操作傳遞到操作後

這樣做的最佳方法是什麼?

[編輯:駕駛員應只支持Windows 10一切是獎金]

+0

對於什麼操作系統,你會做你的司機? – lospejos

+0

編輯該問題以獲取更多信息。 –

+0

對於Windows,有一個WDK(Windows驅動程序開發工具包),我不確定它是否免費提供(很多MS產品不是)。它還包含樣本,包括文件系統過濾器驅動程序,恕我直言 – lospejos

回答

0

您可以簡單地使用PVOID * CompletionContext在術前到存儲指向要傳遞到術後數據。 在PostOperation中,只需使用CompletionContext,因爲它將是您在PreOperation中指出的數據。

例如: PREOP:

MyPreOpData = ExAllocatePoolWithTag(DATA_SIZE); 
FltGetFileNameInformation(&NameInfo); 
MyPreData->NameInfo = NameInfo; 
MyPreData->OtherData = MyDrvGetOtherData(Params); 
*CompletionContext = MyPreData; 

術後:

if (CompletionContext != NULL) 
{ 
    PMY_DATA MyPreData = (PMY_DATA)CompletionContext; 
    // now continue using the data queried in the PreOp 
    ... 
    // when done free it 
    ExFreePoolWithTag(MyPreData); 
} 

詳情請參閱here

祝你好運,
加布裏埃爾