阅读:2161回复:2
大牛们能不能讲讲RtlGenericTable的用法?
初始化,插入记录,查找,删除记录msdn都讲的比较清楚,
但是如何修改已经有的记录和如何同步修改记录不是很明白, 大牛们能不能讲讲? 谢谢! 顺祝新年快乐! |
|
沙发#
发布于:2007-02-16 14:46
谢谢
1. RtlLookupElementGenericTable RtlInsertElementGenericTable 这两个函数的返回值应该就是指向记录的指针? 通过这个指针来修改记录? 2. 可以通过如下的方式是对单条记录进行同步? KeSetEvent(&FileCtxPtr2->Event, IO_NO_INCREMENT, FALSE); 3.通过如下方式对整个表同步? ExAcquireFastMutex(&DevExt->FsCtxTableMutex); FileCtxPtr = RtlLookupElementGenericTable(&DevExt->FsCtxTable, &FileCtxHdr); ExReleaseFastMutex(&DevExt->FsCtxTableMutex); |
|
板凳#
发布于:2007-02-16 14:29
前提我不是什么大牛,:-)
1》由RtlNumberGenericTableElements获取GenericTable的记录个数; 2》由RtlGetElementGenericTable根据索引获取记录: 3》找到记录后进行修改; 4》至于同步嘛,有两个层面的同步: 第一,整个GENERIC-TABLE表的访问同步; 第二,单个记录访问的同步,这需要你自己在记录结构中增加同步对象来实现; |
|
|