/***************************************************************************** Company : Shree Ganesha Inc. File Name : SkyWalker1Main.cpp Author : Date : Purpose : This file contains the Entry Point of the Device Driver. The File also defines various Dispatch Routine pointers Revision History: =============================================================================== DATE VERSION AUTHOR REMARK =============================================================================== XXth April,2009 01 Initial Version *****************************************************************************/ /* Include the Library and Other header file */ #include "SkyWalker1Main.h" //Common For all the Definitions, //Declarations and Library Routines /* End of Inclusion the Library and Other header file */ /* Macro Definitions */ /* End of Macro Definitions */ /* Global & Static variables Declaration */ //Device Dispatch Table : Lists the dispatch routines for the //major events in the life of Device const KSDEVICE_DISPATCH SkyWalker1DispatchTable = { /* Add */ SkyWalker1AddDevice, /* Start */ SkyWalker1Start, /* PostStart */ NULL, /* QueryStop */ SkyWalker1QueryStop, /* CancelStop */ NULL, /* Stop */ SkyWalker1Stop, /* QueryRemove */ NULL, /*QueryRemoveUsbDevice,*/ /* CancelRemove */ NULL, /* Remove */ SkyWalker1Remove, /* QueryCapabilities */ NULL, /* SurpriseRemoval */ NULL, /* QueryPower */ NULL, /* SetPower */ SkyWalker1SetPower }; //Array of Filter Descriptors supported by the Current Driver // Hold all the filter descriptors in an array DEFINE_KSFILTER_DESCRIPTOR_TABLE(FilterDescriptors) { &SkyWalker1CaptureFilterDescriptor //Only Capture filter is a Kernel Streaming Filter }; //Device Descriptor : It Describes the Device with all it's dispatch //functions and Filters const KSDEVICE_DESCRIPTOR SkyWalker1DeviceDescriptor = { &SkyWalker1DispatchTable, SIZEOF_ARRAY(FilterDescriptors), //Filter Descriptor Count FilterDescriptors, //Filter Descriptor Table KSDEVICE_DESCRIPTOR_VERSION }; /* End of Global & Static variables Declaration */ /* External Variable Declaration */ /* End of External Variable Declaration */ /* Declare Enumerations here */ /* End of Enumeration declaration */ /* Function Prototypes */ /* End of Function prototype definitions */ /***************************************************************************** Function : DriverEntry Description : This is a Entry Point function of the Windows Device Driver It defines various dispatch routine Entry Point for the Driver IN PARAM : Pointer to Driver Object which is called Pointer to the Registry Entry of the Driver OUT PARAM : Status of the Driver Entry routine STATUS_SUCCESS always PreCondition : Driver is Unloaded PostCondtion : Driver is Loaded with various Entry Point defined Logic : NONE Assumption : NONE Note : NONE Revision History: *****************************************************************************/ extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath) { NTSTATUS ntEntryStatus = STATUS_SUCCESS; PrintFunctionEntry(__FUNCTION__); SkyWalkerDebugPrint(ENTRY_LEVEL, ("SkyWalker1 Driver Compiled on Date = %s, Time = %s\n",__DATE__,__TIME__)); SkyWalkerDebugPrint(ENTRY_LEVEL, ("Debug Level = %u\n",nCurrentDebugLevel)); //As this is an AVStream Minidriver it should call the KsInitializeDriver() ntEntryStatus = KsInitializeDriver( pDriverObject, pRegistryPath, &SkyWalker1DeviceDescriptor); PrintFunctionExit(__FUNCTION__,ntEntryStatus); return ntEntryStatus; } /***************************************************************************** Function : SkyWalker1DriverUnload Description : This is a Exit Point function of the Windows Device Driver It does not usedful job for the PnP Driver but required to unload the Driver from the Running System. IN PARAM : Pointer to Driver Object which is to be Unloaded OUT PARAM : NONE PreCondition : Driver is Loaded PostCondtion : Driver is Unloaded Logic : NONE Assumption : NONE Note : NONE Revision History: *****************************************************************************/ VOID SkyWalker1DriverUnload(PDRIVER_OBJECT pDriverObject) { PrintFunctionEntry(__FUNCTION__); //No Processing PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS); }