21,616
社区成员




NTSTATUS DriverEntry(PDRIVER_OBJECT drvObject, PUNICODE_STRING usRegPath)
{
PKEY_VALUE_PARTIAL_INFORMATION startKeyValue;
ULONG version;
int i;
Dump("DriverEntry " DRIVER_NAME " " DRIVER_VERSION "\n");
memset(&OsVersion, 0, sizeof(RTL_OSVERSIONINFOW));
OsVersion.dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOW);
RtlGetVersion(&OsVersion);
//Dump("RtlGetVersion:%d,%d\r\n", OsVersion.dwMajorVersion, OsVersion.dwMinorVersion);
// Load dump filter if the main driver is already loaded
if (NT_SUCCESS (FDDeviceIoControl (NT_ROOT_PREFIX, FD_IOCTL_GET_DRIVER_VERSION, NULL, 0, &version, sizeof (version))))
return DumpFilterEntry ((PFILTER_EXTENSION) drvObject, (PFILTER_INITIALIZATION_DATA) usRegPath);
FDDriverObject = drvObject;
memset(VirtualVolumeDeviceObjects, 0, sizeof(VirtualVolumeDeviceObjects));
if(NT_SUCCESS(FDReadRegistryKey(usRegPath, L"Start", &startKeyValue)))
{
if(startKeyValue->Type == REG_DWORD && *((uint32 *)startKeyValue->Data) == SERVICE_BOOT_START)
{
LoadBootArguments();
}
FDfree(startKeyValue);
}
else
{
Dump("Read registry key value failure!\n");
}
VolumeClassFilterRegistered = IsVolumeClassFilterRegistered();
ReportBOOL("VolumeClassFilterRegistered", VolumeClassFilterRegistered);
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; ++i)
{
FDDriverObject->MajorFunction[i] = FDDispatchQueueIRP;
}
FDDriverObject->DriverExtension->AddDevice = FileDiskAddDevice;
drvObject->DriverUnload = UnloadDriver;
return FDCreateRootDeviceObject(FDDriverObject);
}
;/*++
;
;Copyright (c) 1990-1999 Microsoft Corporation All rights Reserved
;
;Module Name:
;
; BUSF.INF
;
;Abstract:
;
; INF file for installing toaster bus enumerator driver with upper
; lower filter.
;
;
;
;--*/
[Version]
Signature="$WINDOWS NT$"
Class=System
ClassGuid={4D36E97D-E325-11CE-BFC1-08002BE10318}
Provider=%ZXT%
DriverVer=09/21/2006,6.0.5736.1
CatalogFile=filedisk.cat
[DestinationDirs]
DefaultDestDir = 12
[SourceDisksNames]
1 = %DiskId1%,,,""
[SourceDisksFiles]
filedisk.sys = 1,,
BFdoLwr.sys = 1,,
BFdoUpr.sys = 1,,
;*****************************************
; FileDisk Install Section
;*****************************************
[Manufacturer]
%StdMfg%=Standard
[Standard]
%FileDisk.DeviceDesc%=FileDisk_Device, root\filedisk
[FileDisk_Device.NT]
CopyFiles=Drivers_Dir
[FileDisk_Device.NT.HW]
AddReg=FileDisk_Device.NT.HW.AddReg
[Drivers_Dir]
filedisk.sys
BFdoLwr.sys
BFdoUpr.sys
[FileDisk_Device.NT.HW.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100 ; Use same security checks on relative opens
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)" ; Allow generic-all access to Built-in administrators and Local system
HKR,,"UpperFilters",0x00010000,"BFdoUpr"
HKR,,"LowerFilters",0x00010000,"BFdoLwr"
;-------------- Service installation
; Function and filter driver for the bus
[FileDisk_Device.NT.Services]
AddService = filedisk, %SPSVCINST_ASSOCSERVICE%, filedisk_Service_Inst
AddService = BFdoUpr,, busupper_Service_Inst
AddService = BFdoLwr,, buslower_Service_Inst
; -------------- busenum Toaster Bus Driver install sections
[filedisk_Service_Inst]
DisplayName = %filedisk.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\filedisk.sys
LoadOrderGroup = Extended Base
; -------------- busupper Driver install section
[busupper_Service_Inst]
DisplayName = %busupper.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\BFdoUpr.sys
LoadOrderGroup = PNP Filter
; -------------- buslower Driver install section
[buslower_Service_Inst]
DisplayName = %buslower.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\BFdoLwr.sys
LoadOrderGroup = PNP Filter
[Strings]
SPSVCINST_ASSOCSERVICE= 0x00000002
ZXT = "China ZXT"
StdMfg = "(Standard system devices)"
DiskId1 = "FileDisk Installation Disk #1"
FileDisk.DeviceDesc = "FileDisk Driver for disk driver"
filedisk.SVCDESC = "FileDisk Driver"
busupper.SVCDESC = "FileDisk FDO Upper Filter"
buslower.SVCDESC = "FileDisk FDO Lower Filter"
请版主老大不吝赐教,谢谢啊。;;;
;;; FileDisk
;;;
;;;
[Version]
Signature = "$Windows NT$"
Class = "DiskDrive" ;This is determined by the work this filter driver does
ClassGuid = {4d36e967-e325-11ce-bfc1-08002be10318} ;This value is determined by the Class
Provider = %zxt%
DriverVer = 01/09/2015,1.0.0.0
;;CatalogFile = FileDisk.cat
[DestinationDirs]
DefaultDestDir = 12
FileDisk.DriverFiles = 12 ;%windir%\system32\drivers
;;
;; Default install sections
;;
[DefaultInstall]
OptionDesc = %ServiceDescription%
CopyFiles = FileDisk.DriverFiles
[DefaultInstall.Services]
AddService = %ServiceName%,,FileDisk.Service
;;
;; Default uninstall sections
;;
[DefaultUninstall]
DelFiles = FileDisk.DriverFiles
[DefaultUninstall.Services]
DelService = %ServiceName%,0x200 ;Ensure service is stopped before deleting
;
; Services Section
;
[FileDisk.Service]
DisplayName = %ServiceName%
Description = %ServiceDescription%
ServiceBinary = %12%\%DriverName%.sys ;%windir%\system32\drivers\
;Dependencies = "FltMgr"
;ServiceType = 2 ;SERVICE_FILE_SYSTEM_DRIVER
ServiceType = 1 ;SERVICE_KERNEL_DRIVER
StartType = 3 ;SERVICE_DEMAND_START
ErrorControl = 1 ;SERVICE_ERROR_NORMAL
;LoadOrderGroup = "FSFilter Activity Monitor"
;AddReg = FileDisk.AddRegistry
;
; Registry Modifications
;
[FileDisk.AddRegistry]
HKR,"Instances","DefaultInstance",0x00000000,%DefaultInstance%
HKR,"Instances\"%Instance1.Name%,"Altitude",0x00000000,%Instance1.Altitude%
HKR,"Instances\"%Instance1.Name%,"Flags",0x00010001,%Instance1.Flags%
;
; Copy Files
;
[FileDisk.DriverFiles]
%DriverName%.sys
[SourceDisksFiles]
FileDisk.sys = 1,,
[SourceDisksNames]
1 = %DiskId1%,,,
;;
;; String Section
;;
[Strings]
zxt = "China ZhongXingTong Corporation"
ServiceDescription = "FileDisk mini-filter driver"
ServiceName = "FileDisk"
DriverName = "FileDisk"
DiskId1 = "FileDisk Device Installation Disk"
;Instances specific information.
DefaultInstance = "FileDisk Instance"
Instance1.Name = "FileDisk Instance"
Instance1.Altitude = "370020"
Instance1.Flags = 0x1 ; Suppress automatic attachments