到驱动的代码里看看,看是不是判断系统不同,创建的名字不一样。
另外,2000和xp有可能驱动所属的路径不同,你看看驱动里的代码
举个例子:sfilter里面
RtlInitUnicodeString( &nameString, L"\\FileSystem\\Filters\\SFilter" );
status = IoCreateDevice( DriverObject,
//0, //has no device extension
sizeof(SFILTER_DEVICE_EXTENSION),
&nameString,
FILE_DEVICE_DISK_FILE_SYSTEM,
FILE_DEVICE_SECURE_OPEN,
FALSE,
&gSFilterControlDeviceObject );
if (status == STATUS_OBJECT_PATH_NOT_FOUND) {
//
// This must be a version of the OS that doesn't have the Filters
// path in its namespace. This was added in Windows XP.
//
// We will try just putting our control device object in the \FileSystem
// portion of the object name space.
//
RtlInitUnicodeString( &nameString, L"\\FileSystem\\SFilterCDO" );
status = IoCreateDevice( DriverObject,
0, //has no device extension
&nameString,
FILE_DEVICE_DISK_FILE_SYSTEM,
FILE_DEVICE_SECURE_OPEN,
FALSE,
&gSFilterControlDeviceObject );
if (!NT_SUCCESS( status )) {
KdPrint(( "SFilter!DriverEntry: Error creating control device object "%wZ", status=%08x\n", &nameString, status ));
return status;
}
} else if (!NT_SUCCESS( status )) {
KdPrint(( "SFilter!DriverEntry: Error creating control device object "%wZ", status=%08x\n", &nameString, status ));
return status;
}
复制代码
详情回复
发表于 2010-5-7 11:40