Normalize line endings to LF across entire repository
Apply .gitattributes normalization to convert all CRLF line endings inherited from Windows-origin source files to Unix LF. 175 files, zero content changes.
This commit is contained in:
parent
696d2dd387
commit
bbdcb243dc
175 changed files with 56794 additions and 56794 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1,165 +1,165 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CaptureFilter.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file contains the filter level header for the
|
||||
capture filter.
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
/* Include the Library and Other header file */
|
||||
|
||||
#include "SkyWalker1Main.h" //Main Header file
|
||||
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
/* 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 : CCaptureFilter
|
||||
Description : Constructor of the CCaptureFilter Class
|
||||
The capture filter object constructor. Since the new operator will
|
||||
have zeroed the memory, do not bother initializing any NULL or 0
|
||||
fields.Only initialize non-NULL, non-0 fields.
|
||||
IN PARAM : <PKSFILTER> Filter
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Filter Object is not created
|
||||
PostCondtion : Filter Object is created and Initialzed on successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
CCaptureFilter::CCaptureFilter(IN PKSFILTER pKSFilter) :
|
||||
m_Filter (pKSFilter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CCaptureFilter
|
||||
Description : Destructor of the CCaptureFilter Class
|
||||
Destroys the filter object
|
||||
IN PARAM : NONE
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Filter Object is created
|
||||
PostCondtion : Filter Object is Removed and Memory freed
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
CCaptureFilter::~CCaptureFilter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CCaptureFilter::Cleanup()
|
||||
Description : This is the bag cleanup callback for the CCaptureFilter.
|
||||
Destroys the filter object
|
||||
IN PARAM : <CCaptureFilter> Reference to the current Object
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Filter Object is created
|
||||
PostCondtion : Filter Object is Removed and Memory freed
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
void CCaptureFilter::Cleanup (IN CCaptureFilter *pFilter)
|
||||
{
|
||||
delete pFilter;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CCaptureFilter::Create()
|
||||
Description : It creates the CCaptureFilter object, associates it with
|
||||
the AVStream filter object, and bag the CCaptureFilter
|
||||
for later cleanup.
|
||||
IN PARAM : <PKSFILTER > Pointer to KSFILTER that just created
|
||||
<PIRP> Pointer to IRP_MJ_CREATE for Filter
|
||||
OUT PARAM : <NTSTATUS> Status of the Filter Create routine
|
||||
STATUS_SUCCESS on Routine success
|
||||
Else Error code from the attempt to create the Filter
|
||||
PreCondition : Filter is not created
|
||||
PostCondtion : Filter is created and Initialzed on successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
STDMETHODIMP_(NTSTATUS) CCaptureFilter::Create( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
NTSTATUS ntFilterCreationStatus = STATUS_SUCCESS;
|
||||
ULONG ulPinId; // just useful when no network provider is present
|
||||
PKSDEVICE pKSDeviceObject = NULL;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Create a filter object for the filter instance.
|
||||
CCaptureFilter* pFilter = new(NonPagedPool,CAPTURE_MEM_TAG) CCaptureFilter(pKSFilter); // Tags the allocated memory
|
||||
if (!IS_VALID(pFilter))
|
||||
{
|
||||
//Exit if the Filter Memory could not be allocated
|
||||
ntFilterCreationStatus = STATUS_INSUFFICIENT_RESOURCES;
|
||||
goto ErrorFilterCreate;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add the item to the object bag if we we were successful.
|
||||
// Whenever the filter closes, the bag is cleaned up and we will be
|
||||
// freed.
|
||||
//
|
||||
ntFilterCreationStatus = KsAddItemToObjectBag (
|
||||
pKSFilter -> Bag,
|
||||
reinterpret_cast <PVOID> (pFilter),
|
||||
reinterpret_cast <PFNKSFREE> (CCaptureFilter::Cleanup)
|
||||
);
|
||||
|
||||
if (!NT_SUCCESS (ntFilterCreationStatus))
|
||||
{
|
||||
goto ErrorFilterCreate;
|
||||
}
|
||||
else
|
||||
{
|
||||
pKSFilter->Context = reinterpret_cast <PVOID> (pFilter);
|
||||
}
|
||||
}
|
||||
|
||||
CompleteFilterCreate :
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntFilterCreationStatus);
|
||||
return ntFilterCreationStatus;
|
||||
|
||||
ErrorFilterCreate:
|
||||
if (IS_VALID(pFilter))
|
||||
{
|
||||
delete pFilter;
|
||||
}
|
||||
|
||||
goto CompleteFilterCreate;
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CaptureFilter.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file contains the filter level header for the
|
||||
capture filter.
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
/* Include the Library and Other header file */
|
||||
|
||||
#include "SkyWalker1Main.h" //Main Header file
|
||||
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
/* 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 : CCaptureFilter
|
||||
Description : Constructor of the CCaptureFilter Class
|
||||
The capture filter object constructor. Since the new operator will
|
||||
have zeroed the memory, do not bother initializing any NULL or 0
|
||||
fields.Only initialize non-NULL, non-0 fields.
|
||||
IN PARAM : <PKSFILTER> Filter
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Filter Object is not created
|
||||
PostCondtion : Filter Object is created and Initialzed on successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
CCaptureFilter::CCaptureFilter(IN PKSFILTER pKSFilter) :
|
||||
m_Filter (pKSFilter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CCaptureFilter
|
||||
Description : Destructor of the CCaptureFilter Class
|
||||
Destroys the filter object
|
||||
IN PARAM : NONE
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Filter Object is created
|
||||
PostCondtion : Filter Object is Removed and Memory freed
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
CCaptureFilter::~CCaptureFilter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CCaptureFilter::Cleanup()
|
||||
Description : This is the bag cleanup callback for the CCaptureFilter.
|
||||
Destroys the filter object
|
||||
IN PARAM : <CCaptureFilter> Reference to the current Object
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Filter Object is created
|
||||
PostCondtion : Filter Object is Removed and Memory freed
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
void CCaptureFilter::Cleanup (IN CCaptureFilter *pFilter)
|
||||
{
|
||||
delete pFilter;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CCaptureFilter::Create()
|
||||
Description : It creates the CCaptureFilter object, associates it with
|
||||
the AVStream filter object, and bag the CCaptureFilter
|
||||
for later cleanup.
|
||||
IN PARAM : <PKSFILTER > Pointer to KSFILTER that just created
|
||||
<PIRP> Pointer to IRP_MJ_CREATE for Filter
|
||||
OUT PARAM : <NTSTATUS> Status of the Filter Create routine
|
||||
STATUS_SUCCESS on Routine success
|
||||
Else Error code from the attempt to create the Filter
|
||||
PreCondition : Filter is not created
|
||||
PostCondtion : Filter is created and Initialzed on successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
STDMETHODIMP_(NTSTATUS) CCaptureFilter::Create( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
NTSTATUS ntFilterCreationStatus = STATUS_SUCCESS;
|
||||
ULONG ulPinId; // just useful when no network provider is present
|
||||
PKSDEVICE pKSDeviceObject = NULL;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Create a filter object for the filter instance.
|
||||
CCaptureFilter* pFilter = new(NonPagedPool,CAPTURE_MEM_TAG) CCaptureFilter(pKSFilter); // Tags the allocated memory
|
||||
if (!IS_VALID(pFilter))
|
||||
{
|
||||
//Exit if the Filter Memory could not be allocated
|
||||
ntFilterCreationStatus = STATUS_INSUFFICIENT_RESOURCES;
|
||||
goto ErrorFilterCreate;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add the item to the object bag if we we were successful.
|
||||
// Whenever the filter closes, the bag is cleaned up and we will be
|
||||
// freed.
|
||||
//
|
||||
ntFilterCreationStatus = KsAddItemToObjectBag (
|
||||
pKSFilter -> Bag,
|
||||
reinterpret_cast <PVOID> (pFilter),
|
||||
reinterpret_cast <PFNKSFREE> (CCaptureFilter::Cleanup)
|
||||
);
|
||||
|
||||
if (!NT_SUCCESS (ntFilterCreationStatus))
|
||||
{
|
||||
goto ErrorFilterCreate;
|
||||
}
|
||||
else
|
||||
{
|
||||
pKSFilter->Context = reinterpret_cast <PVOID> (pFilter);
|
||||
}
|
||||
}
|
||||
|
||||
CompleteFilterCreate :
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntFilterCreationStatus);
|
||||
return ntFilterCreationStatus;
|
||||
|
||||
ErrorFilterCreate:
|
||||
if (IS_VALID(pFilter))
|
||||
{
|
||||
delete pFilter;
|
||||
}
|
||||
|
||||
goto CompleteFilterCreate;
|
||||
}
|
||||
|
|
@ -1,336 +1,336 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CaptureFilterDefinitions.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Capture Filter Definition
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
/* Include the Library and Other header file */
|
||||
|
||||
#include "SkyWalker1Main.h" //Main Header file
|
||||
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
const KSPIN_DISPATCH CaptureInputPinDispatch={
|
||||
/* Create */ CCapturePin::PinCreate,
|
||||
/* Close */ NULL,
|
||||
/* Process */ NULL,
|
||||
/* Reset */ NULL,
|
||||
/* SetDataFormat */ NULL,
|
||||
/* SetDeviceState */ NULL,
|
||||
/* Connect */ NULL,
|
||||
/* Disconnect */ NULL,
|
||||
/* Allocator */ NULL
|
||||
};
|
||||
|
||||
DEFINE_KSAUTOMATION_TABLE(NullAutomation) {
|
||||
DEFINE_KSAUTOMATION_PROPERTIES_NULL,
|
||||
DEFINE_KSAUTOMATION_METHODS_NULL,
|
||||
DEFINE_KSAUTOMATION_EVENTS_NULL
|
||||
};
|
||||
|
||||
//The list of category GUIDs for the capture filter.
|
||||
const GUID SkyWalker1CaptureCatagories [] = {
|
||||
STATICGUIDOF (KSCATEGORY_BDA_RECEIVER_COMPONENT)
|
||||
};
|
||||
|
||||
//Medium GUIDs for the Transport Output Pin.
|
||||
//
|
||||
//Pin Medium descriptor containing all medium accepted to be connected to
|
||||
//the tuner output pin.This insures contection to the correct Capture Filter pin.
|
||||
//
|
||||
//{2AEB4A94-FBB7-4FB1-8D74-243B91886EAB}
|
||||
|
||||
const KSPIN_MEDIUM TransportPinMediums[] =
|
||||
{
|
||||
{
|
||||
GUID_SKYWALKER_TUNER_OUT_MEDIUM,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
//This is the data range description of the capture input pin.
|
||||
//This is same as the Outpin of the Tuner i.e. The Transport Pin
|
||||
//The Output of the Tuner is given to the Capture thus it has to
|
||||
//be same
|
||||
//
|
||||
const KS_DATARANGE_BDA_TRANSPORT FormatCaptureIn =
|
||||
{
|
||||
//insert the KSDATARANGE and KSDATAFORMAT here
|
||||
{
|
||||
sizeof( KS_DATARANGE_BDA_TRANSPORT), //FormatSize
|
||||
0, //Flags - (N/A)
|
||||
0, //SampleSize - (N/A)
|
||||
0, //Reserved
|
||||
{ STATIC_KSDATAFORMAT_TYPE_STREAM }, //MajorFormat
|
||||
{ STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT }, //SubFormat
|
||||
{ STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT } //Specifier
|
||||
},
|
||||
//insert the BDA_TRANSPORT_INFO here
|
||||
{
|
||||
TRANSPORT_PACKET_SIZE, //ulcbPhyiscalPacket
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE, //ulcbPhyiscalFrame
|
||||
0, //ulcbPhyiscalFrameAlignment (no requirement)
|
||||
0 //AvgTimePerFrame (not known)
|
||||
}
|
||||
};
|
||||
|
||||
const PKSDATARANGE CaptureInPinDataRanges[]={
|
||||
(PKSDATARANGE)&FormatCaptureIn,
|
||||
};
|
||||
|
||||
//Capture Outout Pin Definitions
|
||||
const KSPIN_DISPATCH CaptureOutputPinDispatch={
|
||||
/* Create */ CCapturePin::PinCreate,
|
||||
/* Close */ NULL,
|
||||
/* Process */ CCapturePin::DispatchProcess,
|
||||
/* Reset */ NULL,
|
||||
/* SetDataFormat */ NULL,
|
||||
/* SetDeviceState */ CCapturePin::DispatchSetState,
|
||||
/* Connect */ NULL,
|
||||
/* Disconnect */ NULL,
|
||||
/* Allocator */ NULL
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
//This is the data range description of the capture output pin.
|
||||
//
|
||||
const KSDATARANGE FormatCaptureOut =
|
||||
{
|
||||
//insert the KSDATARANGE and KSDATAFORMAT here
|
||||
{
|
||||
sizeof( KSDATARANGE), //FormatSize
|
||||
0, //Flags - (N/A)
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE, //SampleSize
|
||||
0, //Reserved
|
||||
{ STATIC_KSDATAFORMAT_TYPE_STREAM }, //MajorFormat
|
||||
{ STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT },//SubFormat
|
||||
{ STATIC_KSDATAFORMAT_SPECIFIER_NONE } //Specifier
|
||||
}
|
||||
};
|
||||
|
||||
const PKSDATARANGE CaptureOutPinDataRanges[]={
|
||||
(PKSDATARANGE)&FormatCaptureOut,
|
||||
};
|
||||
|
||||
//
|
||||
//CapturePinAllocatorFraming:
|
||||
//
|
||||
//This is the simple framing structure for the capture pin. Note that this
|
||||
//will be modified via KsEdit when the actual capture format is determined.
|
||||
//
|
||||
DECLARE_SIMPLE_FRAMING_EX (
|
||||
CapturePinAllocatorFraming, //FramingExName
|
||||
STATICGUIDOF (KSMEMORY_TYPE_KERNEL_NONPAGED), //MemoryType
|
||||
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY |
|
||||
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY, //Flags
|
||||
NUMBER_OF_FRAMES, //Frames
|
||||
0, //Alignment
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE, //MinFrameSize
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE //MaxFrameSize
|
||||
);
|
||||
|
||||
/**********************************************************************************/
|
||||
|
||||
//Not Supporting Filter Methods,Properties and Events
|
||||
DEFINE_KSAUTOMATION_TABLE(SkyWalker1CaptureAutomationTable)
|
||||
{
|
||||
DEFINE_KSAUTOMATION_PROPERTIES_NULL,
|
||||
DEFINE_KSAUTOMATION_METHODS_NULL,
|
||||
DEFINE_KSAUTOMATION_EVENTS_NULL
|
||||
};
|
||||
/**********************************************************************************/
|
||||
//
|
||||
//CaptureFilterDispatch:
|
||||
//
|
||||
//This is the dispatch table for the capture filter. It provides notification
|
||||
//of creation, closure, processing (for filter-centrics, not for the capture
|
||||
//filter), and resets (for filter-centrics, not for the capture filter).
|
||||
//
|
||||
const KSFILTER_DISPATCH SkyWalker1CaptureDispatchTable =
|
||||
{
|
||||
/* Create */ CCaptureFilter::Create, //Routine called when the Filter is created
|
||||
/* Close */ NULL, //Routine called when the Filter is closed
|
||||
/* Process */ NULL,
|
||||
/* Reset */ NULL
|
||||
};
|
||||
|
||||
//
|
||||
//Capture Pin Descriptors
|
||||
//
|
||||
//This data structure defines the pin types available in the filters
|
||||
//template topology. These structures will be used to create a
|
||||
//KDPinFactory for a pin type when BdaCreatePin or BdaMethodCreatePin
|
||||
//are called.
|
||||
//
|
||||
//This structure defines ALL pins the filter is capable of supporting,
|
||||
//including those pins which may only be created dynamically by a ring
|
||||
//3 component such as a Network Provider.
|
||||
|
||||
//The list of pin descriptors on the capture filter.
|
||||
const KSPIN_DESCRIPTOR_EX SkyWalker1CapturePinDescriptors[]={
|
||||
{ //Capture Filter input pin
|
||||
&CaptureInputPinDispatch, //Dispatch Table
|
||||
&NullAutomation, //Automation Table
|
||||
{
|
||||
0, //Interfaces
|
||||
NULL,
|
||||
SIZEOF_ARRAY(TransportPinMediums), //Medium Count
|
||||
TransportPinMediums, //Medium
|
||||
SIZEOF_ARRAY(CaptureInPinDataRanges), //Range Count
|
||||
CaptureInPinDataRanges, //Ranges
|
||||
KSPIN_DATAFLOW_IN, //Specifies that data flow is into the pin
|
||||
KSPIN_COMMUNICATION_BOTH, //Specifies that the pin factory instantiates pins
|
||||
//that are both IRP sinks and IRP sources
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //Category GUID
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //GUID of the localized Unicode string
|
||||
0
|
||||
},
|
||||
KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT|
|
||||
KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING|
|
||||
KSPIN_FLAG_FIXED_FORMAT,
|
||||
1, //Maximum Possible Instances of the Pin
|
||||
1, //Mandatory Instances of this for the Filter function
|
||||
NULL,//Allocator Framing
|
||||
NULL //Data Interaction Handler
|
||||
},
|
||||
{ //Capture Filter output pin
|
||||
&CaptureOutputPinDispatch, //Dispatch Table
|
||||
&NullAutomation, //Automation Table
|
||||
{
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0,
|
||||
SIZEOF_ARRAY(CaptureOutPinDataRanges), //Range Count
|
||||
CaptureOutPinDataRanges,
|
||||
KSPIN_DATAFLOW_OUT, //Specifies that data flow is out of the pin
|
||||
KSPIN_COMMUNICATION_BOTH,//Specifies that the pin factory instantiates pins
|
||||
//that are both IRP sinks and IRP sources
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //Category GUID
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //GUID of the localized Unicode string
|
||||
0
|
||||
},
|
||||
#if !defined(_BUILD_SW_TUNER_ON_X64)
|
||||
KSPIN_FLAG_GENERATE_MAPPINGS | //Pin Flags
|
||||
#endif
|
||||
KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY,
|
||||
1,//Maximum Possible Instances of the Pin
|
||||
1,//Mandatory Instances of this for the Filter function
|
||||
&CapturePinAllocatorFraming,
|
||||
NULL
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/*****************************************************************************************/
|
||||
//Define BDA Template Topology Connections
|
||||
//
|
||||
//Lists the Connections that are possible between pin types and
|
||||
//node types. This, together with the Template Filter Descriptor, and
|
||||
//the Pin Pairings, describe how topologies can be created in the filter.
|
||||
//
|
||||
// =================
|
||||
//TransportPin ----| Capture Filter |
|
||||
// =================
|
||||
//
|
||||
//The Capture Filter is controlled by the Transport input pin.
|
||||
//Capture Filter properties will be set as NODE properties (with NodeType == 0)
|
||||
//on the filter's Tranport Pin
|
||||
//
|
||||
const KSTOPOLOGY_CONNECTION SkyWalker1CaptureConnections[]={
|
||||
{KSFILTER_NODE, 0, KSFILTER_NODE, KSNODEPIN_STANDARD_IN}, //Transport pin -> Capture Filter pin 0
|
||||
};
|
||||
|
||||
/*****************************************************************************************/
|
||||
|
||||
//Define the Filter Factory Descriptor for the filter
|
||||
//This structure brings together all of the structures that define
|
||||
//the tuner filter as it appears when it is first instantiated.
|
||||
//Note that not all of the template pin and node types may be exposed as
|
||||
//pin and node factories when the filter is first instanciated.
|
||||
|
||||
//The KSFILTER_DESCRIPTOR structure describes the characteristics of a filter created by a given filter factory.
|
||||
DEFINE_KSFILTER_DESCRIPTOR(SkyWalker1CaptureFilterDescriptor)
|
||||
{
|
||||
&SkyWalker1CaptureDispatchTable, //Dispatch (Filter Specific Driver)
|
||||
NULL, //AutomationTable
|
||||
KSFILTER_DESCRIPTOR_VERSION, //Version
|
||||
0, //Flags
|
||||
&SKYWALKER_CAPTURE_FILTER, //ReferenceGuid
|
||||
DEFINE_KSFILTER_PIN_DESCRIPTORS(SkyWalker1CapturePinDescriptors),
|
||||
//PinDescriptorsCount; must expose at least one pin
|
||||
//PinDescriptorSize; size of each item
|
||||
//PinDescriptors; table of pin descriptors
|
||||
DEFINE_KSFILTER_CATEGORY(KSCATEGORY_BDA_RECEIVER_COMPONENT),
|
||||
//CategoriesCount; number of categories in the table
|
||||
//Categories; table of categories
|
||||
DEFINE_KSFILTER_NODE_DESCRIPTORS_NULL,
|
||||
//NodeDescriptorsCount;
|
||||
//NodeDescriptorSize;
|
||||
//NodeDescriptors;
|
||||
DEFINE_KSFILTER_CONNECTIONS(SkyWalker1CaptureConnections),
|
||||
//Automatically fills in the connections table for a filter which defines no explicit connections
|
||||
//ConnectionsCount; number of connections in the table
|
||||
//Connections; table of connections
|
||||
NULL //ComponentId;
|
||||
};
|
||||
|
||||
//Array of BDA_PIN_PAIRING structures that are used to determine
|
||||
//which nodes get duplicated when more than one output pin type is
|
||||
//connected to a single input pin type or when more that one input pin
|
||||
//type is connected to a single output pin type.
|
||||
//
|
||||
const BDA_PIN_PAIRING SkyWalker1CapturePinPairings[] =
|
||||
{
|
||||
//Input pin to Output pin Topology Joints
|
||||
//
|
||||
{
|
||||
0, //ulInputPin; 0 element in the TemplatePinDescriptors array.
|
||||
1, //ulOutputPin; 1 element in the TemplatePinDescriptors array.
|
||||
1, //ulcMaxInputsPerOutput
|
||||
1, //ulcMinInputsPerOutput
|
||||
1, //ulcMaxOutputsPerInput
|
||||
1, //ulcMinOutputsPerInput
|
||||
0, //ulcTopologyJoints
|
||||
NULL //pTopologyJoints; array of joints
|
||||
}
|
||||
//If applicable, list topology of joints between other pins.
|
||||
//
|
||||
};
|
||||
|
||||
|
||||
//BDA_FILTER_TEMPLATE structure describes the template topology for BDA Driver
|
||||
const BDA_FILTER_TEMPLATE SkyWalker1CaptureTemplate =
|
||||
{
|
||||
&SkyWalker1CaptureFilterDescriptor,//Pointer to KS_FILTER_DESCRIPTOR which describes the Filter for BDA Device
|
||||
SIZEOF_ARRAY(SkyWalker1CapturePinPairings), //Number of PAIRS of pins in BDA_PIN_PAIRING Array
|
||||
SkyWalker1CapturePinPairings //Array of Pin Pairing describes topology between a pair of Filter's Input and Output Pins
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CaptureFilterDefinitions.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Capture Filter Definition
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
/* Include the Library and Other header file */
|
||||
|
||||
#include "SkyWalker1Main.h" //Main Header file
|
||||
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
const KSPIN_DISPATCH CaptureInputPinDispatch={
|
||||
/* Create */ CCapturePin::PinCreate,
|
||||
/* Close */ NULL,
|
||||
/* Process */ NULL,
|
||||
/* Reset */ NULL,
|
||||
/* SetDataFormat */ NULL,
|
||||
/* SetDeviceState */ NULL,
|
||||
/* Connect */ NULL,
|
||||
/* Disconnect */ NULL,
|
||||
/* Allocator */ NULL
|
||||
};
|
||||
|
||||
DEFINE_KSAUTOMATION_TABLE(NullAutomation) {
|
||||
DEFINE_KSAUTOMATION_PROPERTIES_NULL,
|
||||
DEFINE_KSAUTOMATION_METHODS_NULL,
|
||||
DEFINE_KSAUTOMATION_EVENTS_NULL
|
||||
};
|
||||
|
||||
//The list of category GUIDs for the capture filter.
|
||||
const GUID SkyWalker1CaptureCatagories [] = {
|
||||
STATICGUIDOF (KSCATEGORY_BDA_RECEIVER_COMPONENT)
|
||||
};
|
||||
|
||||
//Medium GUIDs for the Transport Output Pin.
|
||||
//
|
||||
//Pin Medium descriptor containing all medium accepted to be connected to
|
||||
//the tuner output pin.This insures contection to the correct Capture Filter pin.
|
||||
//
|
||||
//{2AEB4A94-FBB7-4FB1-8D74-243B91886EAB}
|
||||
|
||||
const KSPIN_MEDIUM TransportPinMediums[] =
|
||||
{
|
||||
{
|
||||
GUID_SKYWALKER_TUNER_OUT_MEDIUM,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
//This is the data range description of the capture input pin.
|
||||
//This is same as the Outpin of the Tuner i.e. The Transport Pin
|
||||
//The Output of the Tuner is given to the Capture thus it has to
|
||||
//be same
|
||||
//
|
||||
const KS_DATARANGE_BDA_TRANSPORT FormatCaptureIn =
|
||||
{
|
||||
//insert the KSDATARANGE and KSDATAFORMAT here
|
||||
{
|
||||
sizeof( KS_DATARANGE_BDA_TRANSPORT), //FormatSize
|
||||
0, //Flags - (N/A)
|
||||
0, //SampleSize - (N/A)
|
||||
0, //Reserved
|
||||
{ STATIC_KSDATAFORMAT_TYPE_STREAM }, //MajorFormat
|
||||
{ STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT }, //SubFormat
|
||||
{ STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT } //Specifier
|
||||
},
|
||||
//insert the BDA_TRANSPORT_INFO here
|
||||
{
|
||||
TRANSPORT_PACKET_SIZE, //ulcbPhyiscalPacket
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE, //ulcbPhyiscalFrame
|
||||
0, //ulcbPhyiscalFrameAlignment (no requirement)
|
||||
0 //AvgTimePerFrame (not known)
|
||||
}
|
||||
};
|
||||
|
||||
const PKSDATARANGE CaptureInPinDataRanges[]={
|
||||
(PKSDATARANGE)&FormatCaptureIn,
|
||||
};
|
||||
|
||||
//Capture Outout Pin Definitions
|
||||
const KSPIN_DISPATCH CaptureOutputPinDispatch={
|
||||
/* Create */ CCapturePin::PinCreate,
|
||||
/* Close */ NULL,
|
||||
/* Process */ CCapturePin::DispatchProcess,
|
||||
/* Reset */ NULL,
|
||||
/* SetDataFormat */ NULL,
|
||||
/* SetDeviceState */ CCapturePin::DispatchSetState,
|
||||
/* Connect */ NULL,
|
||||
/* Disconnect */ NULL,
|
||||
/* Allocator */ NULL
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
//This is the data range description of the capture output pin.
|
||||
//
|
||||
const KSDATARANGE FormatCaptureOut =
|
||||
{
|
||||
//insert the KSDATARANGE and KSDATAFORMAT here
|
||||
{
|
||||
sizeof( KSDATARANGE), //FormatSize
|
||||
0, //Flags - (N/A)
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE, //SampleSize
|
||||
0, //Reserved
|
||||
{ STATIC_KSDATAFORMAT_TYPE_STREAM }, //MajorFormat
|
||||
{ STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT },//SubFormat
|
||||
{ STATIC_KSDATAFORMAT_SPECIFIER_NONE } //Specifier
|
||||
}
|
||||
};
|
||||
|
||||
const PKSDATARANGE CaptureOutPinDataRanges[]={
|
||||
(PKSDATARANGE)&FormatCaptureOut,
|
||||
};
|
||||
|
||||
//
|
||||
//CapturePinAllocatorFraming:
|
||||
//
|
||||
//This is the simple framing structure for the capture pin. Note that this
|
||||
//will be modified via KsEdit when the actual capture format is determined.
|
||||
//
|
||||
DECLARE_SIMPLE_FRAMING_EX (
|
||||
CapturePinAllocatorFraming, //FramingExName
|
||||
STATICGUIDOF (KSMEMORY_TYPE_KERNEL_NONPAGED), //MemoryType
|
||||
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY |
|
||||
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY, //Flags
|
||||
NUMBER_OF_FRAMES, //Frames
|
||||
0, //Alignment
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE, //MinFrameSize
|
||||
TRANSPORT_PACKET_COUNT*TRANSPORT_PACKET_SIZE //MaxFrameSize
|
||||
);
|
||||
|
||||
/**********************************************************************************/
|
||||
|
||||
//Not Supporting Filter Methods,Properties and Events
|
||||
DEFINE_KSAUTOMATION_TABLE(SkyWalker1CaptureAutomationTable)
|
||||
{
|
||||
DEFINE_KSAUTOMATION_PROPERTIES_NULL,
|
||||
DEFINE_KSAUTOMATION_METHODS_NULL,
|
||||
DEFINE_KSAUTOMATION_EVENTS_NULL
|
||||
};
|
||||
/**********************************************************************************/
|
||||
//
|
||||
//CaptureFilterDispatch:
|
||||
//
|
||||
//This is the dispatch table for the capture filter. It provides notification
|
||||
//of creation, closure, processing (for filter-centrics, not for the capture
|
||||
//filter), and resets (for filter-centrics, not for the capture filter).
|
||||
//
|
||||
const KSFILTER_DISPATCH SkyWalker1CaptureDispatchTable =
|
||||
{
|
||||
/* Create */ CCaptureFilter::Create, //Routine called when the Filter is created
|
||||
/* Close */ NULL, //Routine called when the Filter is closed
|
||||
/* Process */ NULL,
|
||||
/* Reset */ NULL
|
||||
};
|
||||
|
||||
//
|
||||
//Capture Pin Descriptors
|
||||
//
|
||||
//This data structure defines the pin types available in the filters
|
||||
//template topology. These structures will be used to create a
|
||||
//KDPinFactory for a pin type when BdaCreatePin or BdaMethodCreatePin
|
||||
//are called.
|
||||
//
|
||||
//This structure defines ALL pins the filter is capable of supporting,
|
||||
//including those pins which may only be created dynamically by a ring
|
||||
//3 component such as a Network Provider.
|
||||
|
||||
//The list of pin descriptors on the capture filter.
|
||||
const KSPIN_DESCRIPTOR_EX SkyWalker1CapturePinDescriptors[]={
|
||||
{ //Capture Filter input pin
|
||||
&CaptureInputPinDispatch, //Dispatch Table
|
||||
&NullAutomation, //Automation Table
|
||||
{
|
||||
0, //Interfaces
|
||||
NULL,
|
||||
SIZEOF_ARRAY(TransportPinMediums), //Medium Count
|
||||
TransportPinMediums, //Medium
|
||||
SIZEOF_ARRAY(CaptureInPinDataRanges), //Range Count
|
||||
CaptureInPinDataRanges, //Ranges
|
||||
KSPIN_DATAFLOW_IN, //Specifies that data flow is into the pin
|
||||
KSPIN_COMMUNICATION_BOTH, //Specifies that the pin factory instantiates pins
|
||||
//that are both IRP sinks and IRP sources
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //Category GUID
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //GUID of the localized Unicode string
|
||||
0
|
||||
},
|
||||
KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT|
|
||||
KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING|
|
||||
KSPIN_FLAG_FIXED_FORMAT,
|
||||
1, //Maximum Possible Instances of the Pin
|
||||
1, //Mandatory Instances of this for the Filter function
|
||||
NULL,//Allocator Framing
|
||||
NULL //Data Interaction Handler
|
||||
},
|
||||
{ //Capture Filter output pin
|
||||
&CaptureOutputPinDispatch, //Dispatch Table
|
||||
&NullAutomation, //Automation Table
|
||||
{
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0,
|
||||
SIZEOF_ARRAY(CaptureOutPinDataRanges), //Range Count
|
||||
CaptureOutPinDataRanges,
|
||||
KSPIN_DATAFLOW_OUT, //Specifies that data flow is out of the pin
|
||||
KSPIN_COMMUNICATION_BOTH,//Specifies that the pin factory instantiates pins
|
||||
//that are both IRP sinks and IRP sources
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //Category GUID
|
||||
(GUID *) &PINNAME_BDA_TRANSPORT, //GUID of the localized Unicode string
|
||||
0
|
||||
},
|
||||
#if !defined(_BUILD_SW_TUNER_ON_X64)
|
||||
KSPIN_FLAG_GENERATE_MAPPINGS | //Pin Flags
|
||||
#endif
|
||||
KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY,
|
||||
1,//Maximum Possible Instances of the Pin
|
||||
1,//Mandatory Instances of this for the Filter function
|
||||
&CapturePinAllocatorFraming,
|
||||
NULL
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/*****************************************************************************************/
|
||||
//Define BDA Template Topology Connections
|
||||
//
|
||||
//Lists the Connections that are possible between pin types and
|
||||
//node types. This, together with the Template Filter Descriptor, and
|
||||
//the Pin Pairings, describe how topologies can be created in the filter.
|
||||
//
|
||||
// =================
|
||||
//TransportPin ----| Capture Filter |
|
||||
// =================
|
||||
//
|
||||
//The Capture Filter is controlled by the Transport input pin.
|
||||
//Capture Filter properties will be set as NODE properties (with NodeType == 0)
|
||||
//on the filter's Tranport Pin
|
||||
//
|
||||
const KSTOPOLOGY_CONNECTION SkyWalker1CaptureConnections[]={
|
||||
{KSFILTER_NODE, 0, KSFILTER_NODE, KSNODEPIN_STANDARD_IN}, //Transport pin -> Capture Filter pin 0
|
||||
};
|
||||
|
||||
/*****************************************************************************************/
|
||||
|
||||
//Define the Filter Factory Descriptor for the filter
|
||||
//This structure brings together all of the structures that define
|
||||
//the tuner filter as it appears when it is first instantiated.
|
||||
//Note that not all of the template pin and node types may be exposed as
|
||||
//pin and node factories when the filter is first instanciated.
|
||||
|
||||
//The KSFILTER_DESCRIPTOR structure describes the characteristics of a filter created by a given filter factory.
|
||||
DEFINE_KSFILTER_DESCRIPTOR(SkyWalker1CaptureFilterDescriptor)
|
||||
{
|
||||
&SkyWalker1CaptureDispatchTable, //Dispatch (Filter Specific Driver)
|
||||
NULL, //AutomationTable
|
||||
KSFILTER_DESCRIPTOR_VERSION, //Version
|
||||
0, //Flags
|
||||
&SKYWALKER_CAPTURE_FILTER, //ReferenceGuid
|
||||
DEFINE_KSFILTER_PIN_DESCRIPTORS(SkyWalker1CapturePinDescriptors),
|
||||
//PinDescriptorsCount; must expose at least one pin
|
||||
//PinDescriptorSize; size of each item
|
||||
//PinDescriptors; table of pin descriptors
|
||||
DEFINE_KSFILTER_CATEGORY(KSCATEGORY_BDA_RECEIVER_COMPONENT),
|
||||
//CategoriesCount; number of categories in the table
|
||||
//Categories; table of categories
|
||||
DEFINE_KSFILTER_NODE_DESCRIPTORS_NULL,
|
||||
//NodeDescriptorsCount;
|
||||
//NodeDescriptorSize;
|
||||
//NodeDescriptors;
|
||||
DEFINE_KSFILTER_CONNECTIONS(SkyWalker1CaptureConnections),
|
||||
//Automatically fills in the connections table for a filter which defines no explicit connections
|
||||
//ConnectionsCount; number of connections in the table
|
||||
//Connections; table of connections
|
||||
NULL //ComponentId;
|
||||
};
|
||||
|
||||
//Array of BDA_PIN_PAIRING structures that are used to determine
|
||||
//which nodes get duplicated when more than one output pin type is
|
||||
//connected to a single input pin type or when more that one input pin
|
||||
//type is connected to a single output pin type.
|
||||
//
|
||||
const BDA_PIN_PAIRING SkyWalker1CapturePinPairings[] =
|
||||
{
|
||||
//Input pin to Output pin Topology Joints
|
||||
//
|
||||
{
|
||||
0, //ulInputPin; 0 element in the TemplatePinDescriptors array.
|
||||
1, //ulOutputPin; 1 element in the TemplatePinDescriptors array.
|
||||
1, //ulcMaxInputsPerOutput
|
||||
1, //ulcMinInputsPerOutput
|
||||
1, //ulcMaxOutputsPerInput
|
||||
1, //ulcMinOutputsPerInput
|
||||
0, //ulcTopologyJoints
|
||||
NULL //pTopologyJoints; array of joints
|
||||
}
|
||||
//If applicable, list topology of joints between other pins.
|
||||
//
|
||||
};
|
||||
|
||||
|
||||
//BDA_FILTER_TEMPLATE structure describes the template topology for BDA Driver
|
||||
const BDA_FILTER_TEMPLATE SkyWalker1CaptureTemplate =
|
||||
{
|
||||
&SkyWalker1CaptureFilterDescriptor,//Pointer to KS_FILTER_DESCRIPTOR which describes the Filter for BDA Device
|
||||
SIZEOF_ARRAY(SkyWalker1CapturePinPairings), //Number of PAIRS of pins in BDA_PIN_PAIRING Array
|
||||
SkyWalker1CapturePinPairings //Array of Pin Pairing describes topology between a pair of Filter's Input and Output Pins
|
||||
};
|
||||
|
||||
/* 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 */
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,142 +1,142 @@
|
|||
; SkyWalker1Installer.INF -- This file installs SkyWalker1 Driver
|
||||
;
|
||||
[Version]
|
||||
signature="$CHICAGO$"
|
||||
Class=Media
|
||||
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
|
||||
Provider=%SGI%
|
||||
CatalogFile=SkyWalker1Installer.cat
|
||||
DriverVer= 8/17/2009
|
||||
|
||||
; F i l e c o p y i n g s e c t i o n s (where the files go to).
|
||||
;
|
||||
[DestinationDirs]
|
||||
DefaultDestDir=10,system32\drivers
|
||||
|
||||
[Manufacturer]
|
||||
%SGI%=SGI
|
||||
|
||||
[ControlFlags]
|
||||
;ExcludeFromSelect=*
|
||||
;ExcludeFromSelect.NT=*
|
||||
|
||||
; =================== Generic ==================================
|
||||
|
||||
[SGI]
|
||||
%SkyWalker1.DeviceDesc%=Skywalker1.Device,USB\VID_09C0&PID_0203 ;SkyWalker1
|
||||
|
||||
[Skywalker1.Device]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration, KSCAPTUR.Registration, BDA.Installation
|
||||
AddReg = Skywalker1.AddReg
|
||||
CopyFiles = Skywalker1.CopyDrivers
|
||||
|
||||
[Skywalker1.Device.NT]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
|
||||
;AddReg = Skywalker1.AddReg
|
||||
CopyFiles = Skywalker1.CopyDrivers
|
||||
; KnownFiles = Skywalker1.KnownFiles
|
||||
|
||||
[Skywalker1.Device.NT.Services]
|
||||
Addservice=SkyWalker1TVTuner, 0x00000002, Skywalker1.AddService
|
||||
|
||||
[Skywalker1.AddService]
|
||||
DisplayName=%SkyWalker1.FriendlyName%
|
||||
ServiceType=1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType=3 ; SERVICE_DEMAND_START
|
||||
ErrorControl=1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary=%10%\System32\Drivers\SkyWalker1TVTuner.sys
|
||||
LoadOrderGroup=ExtendedBase
|
||||
|
||||
[Skywalker1.CopyDrivers]
|
||||
SkyWalker1TVTuner.sys
|
||||
|
||||
[Skywalker1.AddReg]
|
||||
HKR,,DevLoader,,*NTKERN
|
||||
HKR,,NTMPDriver,,SkyWalker1TVTuner.sys
|
||||
HKR,,PageOutWhenUnopened,3,01
|
||||
|
||||
[Skywalker1.Device.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,Skywalker1.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,Skywalker1.Tuner.Interfaces
|
||||
|
||||
[Skywalker1.Device.NT.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,Skywalker1.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,Skywalker1.Tuner.Interfaces
|
||||
|
||||
[Skywalker1.Tuner.Interfaces]
|
||||
AddReg=Skywalker1.Tuner.Interfaces.AddReg
|
||||
|
||||
[Skywalker1.Tuner.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker1.Tuner.FriendlyName%
|
||||
|
||||
[Skywalker1.Receiver.Interfaces]
|
||||
AddReg=Skywalker1.Receiver.Interfaces.AddReg
|
||||
|
||||
[Skywalker1.Receiver.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker1.Receiver.FriendlyName%
|
||||
|
||||
|
||||
[Strings]
|
||||
;non-localizable
|
||||
SGI="Plethorasoft"
|
||||
MfgName="SGI"
|
||||
SkyWalker1.DeviceDesc="SkyWalker1 BDA TVTuner"
|
||||
SkyWalker1.Tuner.FriendlyName="SkyWalker1 TV Tuner"
|
||||
SkyWalker1.Receiver.FriendlyName="SkyWalker1 TV Receiver"
|
||||
SkyWalker1.Tuner="SkyWalker1.Tuner"
|
||||
KSProxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
|
||||
KSCATEGORY_BDA_NETWORK_TUNER="{71985F48-1CA1-11d3-9CC8-00C04F7971E0}"
|
||||
KSCATEGORY_BDA_RECEIVER_COMPONENT="{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}"
|
||||
SKYWALKER_TUNER="{5C4E764F-AB43-46A9-B21E-8529C70F0A23}"
|
||||
SKYWALKER_CAPTURE="{0F8F74D9-E524-4D05-BB60-F0C69ACB1756}"
|
||||
|
||||
;
|
||||
; ServiceType values
|
||||
SERVICE_KERNEL_DRIVER = 0x00000001
|
||||
SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
|
||||
SERVICE_ADAPTER = 0x00000004
|
||||
SERVICE_RECOGNIZER_DRIVER = 0x00000008
|
||||
SERVICE_WIN32_OWN_PROCESS = 0x00000010
|
||||
SERVICE_WIN32_SHARE_PROCESS = 0x00000020
|
||||
SERVICE_INTERACTIVE_PROCESS = 0x00000100
|
||||
SERVICE_INTERACTIVE_SHARE_PROCESS = 0x00000120
|
||||
|
||||
; StartType values
|
||||
SERVICE_BOOT_START = 0x00000000
|
||||
SERVICE_SYSTEM_START = 0x00000001
|
||||
SERVICE_AUTO_START = 0x00000002
|
||||
SERVICE_DEMAND_START = 0x00000003
|
||||
SERVICE_DISABLED = 0x00000004
|
||||
|
||||
; ErrorControl values
|
||||
SERVICE_ERROR_IGNORE = 0x00000000
|
||||
SERVICE_ERROR_NORMAL = 0x00000001
|
||||
SERVICE_ERROR_SEVERE = 0x00000002
|
||||
SERVICE_ERROR_CRITICAL = 0x00000003
|
||||
|
||||
; Characteristic flags
|
||||
NCF_VIRTUAL = 0x0001
|
||||
NCF_WRAPPER = 0x0002
|
||||
NCF_PHYSICAL = 0x0004
|
||||
NCF_HIDDEN = 0x0008
|
||||
NCF_NO_SERVICE = 0x0010
|
||||
NCF_NOT_USER_REMOVABLE = 0x0020
|
||||
NCF_HAS_UI = 0x0080
|
||||
NCF_MODEM = 0x0100
|
||||
|
||||
; Registry types
|
||||
REG_MULTI_SZ = 0x10000
|
||||
REG_EXPAND_SZ = 0x20000
|
||||
REG_DWORD = 0x10001
|
||||
|
||||
; Win9x Compatible Types
|
||||
REG_BINARY = 17
|
||||
REG_SZ = 0
|
||||
|
||||
; Service install flags
|
||||
SPSVCINST_TAGTOFRONT = 0x1
|
||||
; SkyWalker1Installer.INF -- This file installs SkyWalker1 Driver
|
||||
;
|
||||
[Version]
|
||||
signature="$CHICAGO$"
|
||||
Class=Media
|
||||
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
|
||||
Provider=%SGI%
|
||||
CatalogFile=SkyWalker1Installer.cat
|
||||
DriverVer= 8/17/2009
|
||||
|
||||
; F i l e c o p y i n g s e c t i o n s (where the files go to).
|
||||
;
|
||||
[DestinationDirs]
|
||||
DefaultDestDir=10,system32\drivers
|
||||
|
||||
[Manufacturer]
|
||||
%SGI%=SGI
|
||||
|
||||
[ControlFlags]
|
||||
;ExcludeFromSelect=*
|
||||
;ExcludeFromSelect.NT=*
|
||||
|
||||
; =================== Generic ==================================
|
||||
|
||||
[SGI]
|
||||
%SkyWalker1.DeviceDesc%=Skywalker1.Device,USB\VID_09C0&PID_0203 ;SkyWalker1
|
||||
|
||||
[Skywalker1.Device]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration, KSCAPTUR.Registration, BDA.Installation
|
||||
AddReg = Skywalker1.AddReg
|
||||
CopyFiles = Skywalker1.CopyDrivers
|
||||
|
||||
[Skywalker1.Device.NT]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
|
||||
;AddReg = Skywalker1.AddReg
|
||||
CopyFiles = Skywalker1.CopyDrivers
|
||||
; KnownFiles = Skywalker1.KnownFiles
|
||||
|
||||
[Skywalker1.Device.NT.Services]
|
||||
Addservice=SkyWalker1TVTuner, 0x00000002, Skywalker1.AddService
|
||||
|
||||
[Skywalker1.AddService]
|
||||
DisplayName=%SkyWalker1.FriendlyName%
|
||||
ServiceType=1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType=3 ; SERVICE_DEMAND_START
|
||||
ErrorControl=1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary=%10%\System32\Drivers\SkyWalker1TVTuner.sys
|
||||
LoadOrderGroup=ExtendedBase
|
||||
|
||||
[Skywalker1.CopyDrivers]
|
||||
SkyWalker1TVTuner.sys
|
||||
|
||||
[Skywalker1.AddReg]
|
||||
HKR,,DevLoader,,*NTKERN
|
||||
HKR,,NTMPDriver,,SkyWalker1TVTuner.sys
|
||||
HKR,,PageOutWhenUnopened,3,01
|
||||
|
||||
[Skywalker1.Device.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,Skywalker1.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,Skywalker1.Tuner.Interfaces
|
||||
|
||||
[Skywalker1.Device.NT.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,Skywalker1.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,Skywalker1.Tuner.Interfaces
|
||||
|
||||
[Skywalker1.Tuner.Interfaces]
|
||||
AddReg=Skywalker1.Tuner.Interfaces.AddReg
|
||||
|
||||
[Skywalker1.Tuner.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker1.Tuner.FriendlyName%
|
||||
|
||||
[Skywalker1.Receiver.Interfaces]
|
||||
AddReg=Skywalker1.Receiver.Interfaces.AddReg
|
||||
|
||||
[Skywalker1.Receiver.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker1.Receiver.FriendlyName%
|
||||
|
||||
|
||||
[Strings]
|
||||
;non-localizable
|
||||
SGI="Plethorasoft"
|
||||
MfgName="SGI"
|
||||
SkyWalker1.DeviceDesc="SkyWalker1 BDA TVTuner"
|
||||
SkyWalker1.Tuner.FriendlyName="SkyWalker1 TV Tuner"
|
||||
SkyWalker1.Receiver.FriendlyName="SkyWalker1 TV Receiver"
|
||||
SkyWalker1.Tuner="SkyWalker1.Tuner"
|
||||
KSProxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
|
||||
KSCATEGORY_BDA_NETWORK_TUNER="{71985F48-1CA1-11d3-9CC8-00C04F7971E0}"
|
||||
KSCATEGORY_BDA_RECEIVER_COMPONENT="{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}"
|
||||
SKYWALKER_TUNER="{5C4E764F-AB43-46A9-B21E-8529C70F0A23}"
|
||||
SKYWALKER_CAPTURE="{0F8F74D9-E524-4D05-BB60-F0C69ACB1756}"
|
||||
|
||||
;
|
||||
; ServiceType values
|
||||
SERVICE_KERNEL_DRIVER = 0x00000001
|
||||
SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
|
||||
SERVICE_ADAPTER = 0x00000004
|
||||
SERVICE_RECOGNIZER_DRIVER = 0x00000008
|
||||
SERVICE_WIN32_OWN_PROCESS = 0x00000010
|
||||
SERVICE_WIN32_SHARE_PROCESS = 0x00000020
|
||||
SERVICE_INTERACTIVE_PROCESS = 0x00000100
|
||||
SERVICE_INTERACTIVE_SHARE_PROCESS = 0x00000120
|
||||
|
||||
; StartType values
|
||||
SERVICE_BOOT_START = 0x00000000
|
||||
SERVICE_SYSTEM_START = 0x00000001
|
||||
SERVICE_AUTO_START = 0x00000002
|
||||
SERVICE_DEMAND_START = 0x00000003
|
||||
SERVICE_DISABLED = 0x00000004
|
||||
|
||||
; ErrorControl values
|
||||
SERVICE_ERROR_IGNORE = 0x00000000
|
||||
SERVICE_ERROR_NORMAL = 0x00000001
|
||||
SERVICE_ERROR_SEVERE = 0x00000002
|
||||
SERVICE_ERROR_CRITICAL = 0x00000003
|
||||
|
||||
; Characteristic flags
|
||||
NCF_VIRTUAL = 0x0001
|
||||
NCF_WRAPPER = 0x0002
|
||||
NCF_PHYSICAL = 0x0004
|
||||
NCF_HIDDEN = 0x0008
|
||||
NCF_NO_SERVICE = 0x0010
|
||||
NCF_NOT_USER_REMOVABLE = 0x0020
|
||||
NCF_HAS_UI = 0x0080
|
||||
NCF_MODEM = 0x0100
|
||||
|
||||
; Registry types
|
||||
REG_MULTI_SZ = 0x10000
|
||||
REG_EXPAND_SZ = 0x20000
|
||||
REG_DWORD = 0x10001
|
||||
|
||||
; Win9x Compatible Types
|
||||
REG_BINARY = 17
|
||||
REG_SZ = 0
|
||||
|
||||
; Service install flags
|
||||
SPSVCINST_TAGTOFRONT = 0x1
|
||||
SPSVCINST_ASSOCSERVICE = 0x2
|
||||
|
|
@ -1,137 +1,137 @@
|
|||
/*****************************************************************************
|
||||
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 : <PDRIVER_OBJECT > Pointer to Driver Object which is called
|
||||
<PUNICODE_STRING> Pointer to the Registry Entry of the Driver
|
||||
OUT PARAM : <NTSTATUS> 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: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
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 : <PDRIVER_OBJECT > 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: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1DriverUnload(PDRIVER_OBJECT pDriverObject)
|
||||
{
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//No Processing
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
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 : <PDRIVER_OBJECT > Pointer to Driver Object which is called
|
||||
<PUNICODE_STRING> Pointer to the Registry Entry of the Driver
|
||||
OUT PARAM : <NTSTATUS> 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: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
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 : <PDRIVER_OBJECT > 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: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1DriverUnload(PDRIVER_OBJECT pDriverObject)
|
||||
{
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//No Processing
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,336 +1,336 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1PnP.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : PnP IRP Message Handler
|
||||
|
||||
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 Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
void PrintKSDeviceObject(IN PKSDEVICE pKSDeviceObject);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1AddDevice
|
||||
Description : This Function is called by the PnP Manager for each Device
|
||||
managed by the Driver.It is called during the System Initialization
|
||||
and any time a new Device is enumerated while the System is running.
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
OUT PARAM : <NTSTATUS> Status of the Device Addition
|
||||
STATUS_SUCCESS when the Device added to the System
|
||||
Reason for Failure incase of Error
|
||||
PreCondition : Driver is Loaded without Functional/ Filter Device Objects
|
||||
PostCondtion : Functional Device Object [FDO] or Filter Device Object [FiDO] are created
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : AddDevice is Must for the PnP Drivers
|
||||
This routine runs at PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS SkyWalker1AddDevice(IN PKSDEVICE pKSDeviceObject)
|
||||
{
|
||||
NTSTATUS ntAddDeviceStatus = STATUS_SUCCESS;
|
||||
PKSFILTERFACTORY pFilterFactory = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
PrintKSDeviceObject(pKSDeviceObject);
|
||||
|
||||
if(!IS_VALID(pKSDeviceObject))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("Invalid KS Device Object Received\n"));
|
||||
ntAddDeviceStatus = STATUS_UNSUCCESSFUL;
|
||||
goto FinishAddDevice;
|
||||
}
|
||||
|
||||
//Allcate Memory for the SkyWalker1 Device
|
||||
CSkyWalker1Device * pDevice = new(NonPagedPool,TUNER_MEM_TAG)CSkyWalker1Device;
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("Can not allocate Memory for the SkyWalker1 Device\n"));
|
||||
ntAddDeviceStatus = STATUS_INSUFFICIENT_RESOURCES;
|
||||
goto FinishAddDevice;
|
||||
}
|
||||
|
||||
ntAddDeviceStatus = pDevice->Create(pKSDeviceObject);
|
||||
|
||||
PrintKSDeviceObject(pKSDeviceObject);
|
||||
|
||||
FinishAddDevice:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntAddDeviceStatus);
|
||||
|
||||
return ntAddDeviceStatus;
|
||||
}
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1Remove
|
||||
Description : This function is called when the IRP_MN_REMOVE_DEVICE is sent
|
||||
by the PnP Manager during Device Removal
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
<PIRP> Remove Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Device Removed
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1Remove( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
NTSTATUS ntDeviceRemoveStatus = STATUS_SUCCESS;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
//Unexpected Remove for the Device
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection found with SkyWalker Device\n"));
|
||||
ntDeviceRemoveStatus = STATUS_UNSUCCESSFUL;
|
||||
goto ExitRemoveDevice;
|
||||
}
|
||||
|
||||
ntDeviceRemoveStatus = pDevice->Close(pKSDeviceObject,pIoRequestPacket);
|
||||
|
||||
//Deallocate the SkyWalker1 Device Object Memory
|
||||
delete pDevice;
|
||||
//Remove Reference of the SkyWalker1 Device from the KS Object
|
||||
pKSDeviceObject->Context = NULL;
|
||||
|
||||
ExitRemoveDevice:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntDeviceRemoveStatus);
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1Start
|
||||
Description : This function is called when the IRP_MN_START_DEVICE is sent
|
||||
by the PnP Manager after Allocating Resources to the Device.
|
||||
IRP_MN_START_DEVICE is called once for each device created from
|
||||
the Driver using the IoCreateDevice() call.
|
||||
When BDA Device Starts operating Pnp Dispatches the IRP_MN_START_DEVICE to the ks.sys
|
||||
AvStream class Driver inturn calls the start routine of the BDA minidriver
|
||||
associated with the BDA Device. This Start Routine retrives information about the
|
||||
device from the registry, sets information about the Device and then calls the
|
||||
BdaCreateFilterFactory() support function to
|
||||
1) Create Filter Factory from the Initial Filter Descriptor (KSFILTER_DESCRIPTOR)
|
||||
for the Device.The Initial Filter Descriptor references Dispatch and Automation
|
||||
tables for the Filter and Input Pins
|
||||
2) Associate Filter Factory with the BDA_FILTER_TEMPLATE structure.This structure
|
||||
references template filter descriptor for the Device and the list of possible
|
||||
pairs of the input and output pins.The Descriptor and list inturn reference.
|
||||
a) Static Template Structure that can be used by Network Provider to determine
|
||||
BDA Driver topology
|
||||
b) Static Template Structure that can be used by Network Provider to manipulate
|
||||
BDA Filter
|
||||
c) Nodes and Pins for a BDA Filter along with possible ways to connect the Filter
|
||||
d) Routines that a Netwrok provider can use to Create and Close a Filter instance
|
||||
3) Register the Static Template structures that are specified by BDA_FILTER_TEMPLATE
|
||||
with the BDA support library so that the library can provide default handling
|
||||
for a BDA MiniDriver's Properties and methods.
|
||||
IN PARAM : <PKSDEVICE> Reference to Device to be Started
|
||||
<PIRP> IoRequest Packet
|
||||
OUT PARAM : <NTSTATUS> Status of the Tuner Start
|
||||
STATUS_SUCCESS in case of successful execution
|
||||
Failure Code in other cases
|
||||
PreCondition : Stopped Device or Device Enumerated for the First Time
|
||||
PostCondtion : Device Initialized with the Newly allocated Resources,
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS SkyWalker1Start(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PCM_RESOURCE_LIST pResourceList,
|
||||
IN PCM_RESOURCE_LIST pResourceListTranslated)
|
||||
{
|
||||
|
||||
NTSTATUS ntStartStatus = STATUS_SUCCESS;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
//No Device Found
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection with SkyWalker Device\n"));
|
||||
ntStartStatus = STATUS_UNSUCCESSFUL;
|
||||
goto ExitStartDevice;
|
||||
}
|
||||
|
||||
//Call the Start device function of the SkyWalker1 Device class
|
||||
ntStartStatus = pDevice->Start( pKSDeviceObject,
|
||||
pIoRequestPacket,
|
||||
pResourceList,
|
||||
pResourceListTranslated);
|
||||
|
||||
ExitStartDevice:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntStartStatus);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1Stop
|
||||
Description : This function is called when the IRP_MN_STOP_DEVICE is sent
|
||||
by the PnP Manager during Device Removal
|
||||
IN PARAM : <PKSDEVICE> Reference to Device to be Removed
|
||||
<PIRP> Stop Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Device Stopped
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1Stop(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
|
||||
NTSTATUS ntStopStatus = STATUS_SUCCESS;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection with SkyWalker Device\n"));
|
||||
goto ExitStopDevice;
|
||||
}
|
||||
|
||||
//Call the Stop device function of the SkyWalker1 Device class
|
||||
ntStopStatus = pDevice->Stop( pKSDeviceObject,
|
||||
pIoRequestPacket
|
||||
);
|
||||
ExitStopDevice:
|
||||
PrintFunctionExit(__FUNCTION__,ntStopStatus);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1QueryStop
|
||||
Description : This function is called when the IRP_MN_QUERY_STOP_DEVICE is sent
|
||||
by the PnP Manager during Device Stop
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
<PIRP> Remove Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Query for stopping device is returned
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : All the Devices created by the Driver are connected with Each other
|
||||
with the NextDevice Member of the Device Object
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS SkyWalker1QueryStop( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS);
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1SetPower
|
||||
Description : This function is called when the IRP_MJ_POWER is sent
|
||||
by the PnP Manager during Power Management
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
<PIRP> Power Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Query for stopping device is returned
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : All the Devices created by the Driver are connected with Each other
|
||||
with the NextDevice Member of the Device Object
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1SetPower
|
||||
(
|
||||
IN PKSDEVICE pKSDeviceObject, //Pointer to the device object
|
||||
//provided by the system.
|
||||
IN PIRP pIoRequestPacket,//Pointer to the IRP related to this request.
|
||||
IN DEVICE_POWER_STATE To, //Requested power state.
|
||||
IN DEVICE_POWER_STATE From //Current power state.
|
||||
)
|
||||
{
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection with SkyWalker Device\n"));
|
||||
goto ExitSetPower;
|
||||
}
|
||||
|
||||
//Call the Set Power device function of the SkyWalker1 Device class
|
||||
pDevice->SetPower( pKSDeviceObject,
|
||||
pIoRequestPacket,
|
||||
To,
|
||||
From
|
||||
);
|
||||
ExitSetPower:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PrintKSDeviceObject(IN PKSDEVICE pKSDeviceObject)
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, (__FUNCTION__"\n"));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor = 0x%p \n",pKSDeviceObject->Descriptor));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->Dispatch = 0x%p \n",pKSDeviceObject->Descriptor->Dispatch));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->FilterDescriptorsCount = %lu \n",pKSDeviceObject->Descriptor->FilterDescriptorsCount));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->FilterDescriptors = 0x%p \n",pKSDeviceObject->Descriptor->FilterDescriptors));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->Version = %lu \n",pKSDeviceObject->Descriptor->Version));
|
||||
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->Bag = 0x%p\n",pKSDeviceObject->Bag));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->Context = 0x%p\n",pKSDeviceObject->Context));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->FunctionalDeviceObject = 0x%p\n",pKSDeviceObject->FunctionalDeviceObject));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->PhysicalDeviceObject = 0x%p\n",pKSDeviceObject->PhysicalDeviceObject));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->NextDeviceObject = 0x%p\n",pKSDeviceObject->NextDeviceObject));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->Started = %d\n",pKSDeviceObject->Started));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->SystemPowerState = %d\n",pKSDeviceObject->SystemPowerState));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->DevicePowerState = %d\n",pKSDeviceObject->DevicePowerState));
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1PnP.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : PnP IRP Message Handler
|
||||
|
||||
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 Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
void PrintKSDeviceObject(IN PKSDEVICE pKSDeviceObject);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1AddDevice
|
||||
Description : This Function is called by the PnP Manager for each Device
|
||||
managed by the Driver.It is called during the System Initialization
|
||||
and any time a new Device is enumerated while the System is running.
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
OUT PARAM : <NTSTATUS> Status of the Device Addition
|
||||
STATUS_SUCCESS when the Device added to the System
|
||||
Reason for Failure incase of Error
|
||||
PreCondition : Driver is Loaded without Functional/ Filter Device Objects
|
||||
PostCondtion : Functional Device Object [FDO] or Filter Device Object [FiDO] are created
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : AddDevice is Must for the PnP Drivers
|
||||
This routine runs at PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS SkyWalker1AddDevice(IN PKSDEVICE pKSDeviceObject)
|
||||
{
|
||||
NTSTATUS ntAddDeviceStatus = STATUS_SUCCESS;
|
||||
PKSFILTERFACTORY pFilterFactory = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
PrintKSDeviceObject(pKSDeviceObject);
|
||||
|
||||
if(!IS_VALID(pKSDeviceObject))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("Invalid KS Device Object Received\n"));
|
||||
ntAddDeviceStatus = STATUS_UNSUCCESSFUL;
|
||||
goto FinishAddDevice;
|
||||
}
|
||||
|
||||
//Allcate Memory for the SkyWalker1 Device
|
||||
CSkyWalker1Device * pDevice = new(NonPagedPool,TUNER_MEM_TAG)CSkyWalker1Device;
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("Can not allocate Memory for the SkyWalker1 Device\n"));
|
||||
ntAddDeviceStatus = STATUS_INSUFFICIENT_RESOURCES;
|
||||
goto FinishAddDevice;
|
||||
}
|
||||
|
||||
ntAddDeviceStatus = pDevice->Create(pKSDeviceObject);
|
||||
|
||||
PrintKSDeviceObject(pKSDeviceObject);
|
||||
|
||||
FinishAddDevice:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntAddDeviceStatus);
|
||||
|
||||
return ntAddDeviceStatus;
|
||||
}
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1Remove
|
||||
Description : This function is called when the IRP_MN_REMOVE_DEVICE is sent
|
||||
by the PnP Manager during Device Removal
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
<PIRP> Remove Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Device Removed
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1Remove( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
NTSTATUS ntDeviceRemoveStatus = STATUS_SUCCESS;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
//Unexpected Remove for the Device
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection found with SkyWalker Device\n"));
|
||||
ntDeviceRemoveStatus = STATUS_UNSUCCESSFUL;
|
||||
goto ExitRemoveDevice;
|
||||
}
|
||||
|
||||
ntDeviceRemoveStatus = pDevice->Close(pKSDeviceObject,pIoRequestPacket);
|
||||
|
||||
//Deallocate the SkyWalker1 Device Object Memory
|
||||
delete pDevice;
|
||||
//Remove Reference of the SkyWalker1 Device from the KS Object
|
||||
pKSDeviceObject->Context = NULL;
|
||||
|
||||
ExitRemoveDevice:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntDeviceRemoveStatus);
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1Start
|
||||
Description : This function is called when the IRP_MN_START_DEVICE is sent
|
||||
by the PnP Manager after Allocating Resources to the Device.
|
||||
IRP_MN_START_DEVICE is called once for each device created from
|
||||
the Driver using the IoCreateDevice() call.
|
||||
When BDA Device Starts operating Pnp Dispatches the IRP_MN_START_DEVICE to the ks.sys
|
||||
AvStream class Driver inturn calls the start routine of the BDA minidriver
|
||||
associated with the BDA Device. This Start Routine retrives information about the
|
||||
device from the registry, sets information about the Device and then calls the
|
||||
BdaCreateFilterFactory() support function to
|
||||
1) Create Filter Factory from the Initial Filter Descriptor (KSFILTER_DESCRIPTOR)
|
||||
for the Device.The Initial Filter Descriptor references Dispatch and Automation
|
||||
tables for the Filter and Input Pins
|
||||
2) Associate Filter Factory with the BDA_FILTER_TEMPLATE structure.This structure
|
||||
references template filter descriptor for the Device and the list of possible
|
||||
pairs of the input and output pins.The Descriptor and list inturn reference.
|
||||
a) Static Template Structure that can be used by Network Provider to determine
|
||||
BDA Driver topology
|
||||
b) Static Template Structure that can be used by Network Provider to manipulate
|
||||
BDA Filter
|
||||
c) Nodes and Pins for a BDA Filter along with possible ways to connect the Filter
|
||||
d) Routines that a Netwrok provider can use to Create and Close a Filter instance
|
||||
3) Register the Static Template structures that are specified by BDA_FILTER_TEMPLATE
|
||||
with the BDA support library so that the library can provide default handling
|
||||
for a BDA MiniDriver's Properties and methods.
|
||||
IN PARAM : <PKSDEVICE> Reference to Device to be Started
|
||||
<PIRP> IoRequest Packet
|
||||
OUT PARAM : <NTSTATUS> Status of the Tuner Start
|
||||
STATUS_SUCCESS in case of successful execution
|
||||
Failure Code in other cases
|
||||
PreCondition : Stopped Device or Device Enumerated for the First Time
|
||||
PostCondtion : Device Initialized with the Newly allocated Resources,
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS SkyWalker1Start(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PCM_RESOURCE_LIST pResourceList,
|
||||
IN PCM_RESOURCE_LIST pResourceListTranslated)
|
||||
{
|
||||
|
||||
NTSTATUS ntStartStatus = STATUS_SUCCESS;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
//No Device Found
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection with SkyWalker Device\n"));
|
||||
ntStartStatus = STATUS_UNSUCCESSFUL;
|
||||
goto ExitStartDevice;
|
||||
}
|
||||
|
||||
//Call the Start device function of the SkyWalker1 Device class
|
||||
ntStartStatus = pDevice->Start( pKSDeviceObject,
|
||||
pIoRequestPacket,
|
||||
pResourceList,
|
||||
pResourceListTranslated);
|
||||
|
||||
ExitStartDevice:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntStartStatus);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1Stop
|
||||
Description : This function is called when the IRP_MN_STOP_DEVICE is sent
|
||||
by the PnP Manager during Device Removal
|
||||
IN PARAM : <PKSDEVICE> Reference to Device to be Removed
|
||||
<PIRP> Stop Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Device Stopped
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1Stop(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
|
||||
NTSTATUS ntStopStatus = STATUS_SUCCESS;
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection with SkyWalker Device\n"));
|
||||
goto ExitStopDevice;
|
||||
}
|
||||
|
||||
//Call the Stop device function of the SkyWalker1 Device class
|
||||
ntStopStatus = pDevice->Stop( pKSDeviceObject,
|
||||
pIoRequestPacket
|
||||
);
|
||||
ExitStopDevice:
|
||||
PrintFunctionExit(__FUNCTION__,ntStopStatus);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1QueryStop
|
||||
Description : This function is called when the IRP_MN_QUERY_STOP_DEVICE is sent
|
||||
by the PnP Manager during Device Stop
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
<PIRP> Remove Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Query for stopping device is returned
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : All the Devices created by the Driver are connected with Each other
|
||||
with the NextDevice Member of the Device Object
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS SkyWalker1QueryStop( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket)
|
||||
{
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS);
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : SkyWalker1SetPower
|
||||
Description : This function is called when the IRP_MJ_POWER is sent
|
||||
by the PnP Manager during Power Management
|
||||
IN PARAM : <PKSDEVICE > Pointer to the Enumerated Physical Device
|
||||
KSDEVICE is a WDM Functional Device which is managed by the AVStream
|
||||
<PIRP> Power Device Io Request Packet
|
||||
OUT PARAM : NONE
|
||||
PreCondition : Started Device
|
||||
PostCondtion : Query for stopping device is returned
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : All the Devices created by the Driver are connected with Each other
|
||||
with the NextDevice Member of the Device Object
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
VOID SkyWalker1SetPower
|
||||
(
|
||||
IN PKSDEVICE pKSDeviceObject, //Pointer to the device object
|
||||
//provided by the system.
|
||||
IN PIRP pIoRequestPacket,//Pointer to the IRP related to this request.
|
||||
IN DEVICE_POWER_STATE To, //Requested power state.
|
||||
IN DEVICE_POWER_STATE From //Current power state.
|
||||
)
|
||||
{
|
||||
CSkyWalker1Device * pDevice = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
//Get the SkyWalker1 Device Object from the Context Info.
|
||||
pDevice = reinterpret_cast<CSkyWalker1Device *>(pKSDeviceObject->Context);
|
||||
|
||||
if(!IS_VALID(pDevice))
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("No Connection with SkyWalker Device\n"));
|
||||
goto ExitSetPower;
|
||||
}
|
||||
|
||||
//Call the Set Power device function of the SkyWalker1 Device class
|
||||
pDevice->SetPower( pKSDeviceObject,
|
||||
pIoRequestPacket,
|
||||
To,
|
||||
From
|
||||
);
|
||||
ExitSetPower:
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,STATUS_SUCCESS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PrintKSDeviceObject(IN PKSDEVICE pKSDeviceObject)
|
||||
{
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, (__FUNCTION__"\n"));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor = 0x%p \n",pKSDeviceObject->Descriptor));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->Dispatch = 0x%p \n",pKSDeviceObject->Descriptor->Dispatch));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->FilterDescriptorsCount = %lu \n",pKSDeviceObject->Descriptor->FilterDescriptorsCount));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->FilterDescriptors = 0x%p \n",pKSDeviceObject->Descriptor->FilterDescriptors));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->pDeviceDescriptor->Version = %lu \n",pKSDeviceObject->Descriptor->Version));
|
||||
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->Bag = 0x%p\n",pKSDeviceObject->Bag));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->Context = 0x%p\n",pKSDeviceObject->Context));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->FunctionalDeviceObject = 0x%p\n",pKSDeviceObject->FunctionalDeviceObject));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->PhysicalDeviceObject = 0x%p\n",pKSDeviceObject->PhysicalDeviceObject));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->NextDeviceObject = 0x%p\n",pKSDeviceObject->NextDeviceObject));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->Started = %d\n",pKSDeviceObject->Started));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->SystemPowerState = %d\n",pKSDeviceObject->SystemPowerState));
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL, ("pKsDeviceObject->DevicePowerState = %d\n",pKSDeviceObject->DevicePowerState));
|
||||
}
|
||||
|
|
@ -1,414 +1,414 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TransportPin.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file contains header for the Transport pin on the Tuner
|
||||
filter.
|
||||
|
||||
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 */
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
VOID PrintBdaTransport(PKS_DATARANGE_BDA_TRANSPORT pBdaTransport);
|
||||
VOID PrintBdaTransportInfo(PBDA_TRANSPORT_INFO pBdaTransportInfo);
|
||||
VOID PrintKsDataFormat(PKSDATAFORMAT pKsDataFormat);
|
||||
PCHAR GetDemodPropertyString(ULONG ulDemodProperty);
|
||||
PCHAR GetExtendedPropertyString(ULONG ulTunerExtendedProperty);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::IntersectDataFormat
|
||||
Description : Enables connection of the output pin with a downstream filter.
|
||||
IN PARAM :
|
||||
OUT PARAM : <NTSTATUS> Status of the IntersectDataFormat
|
||||
PreCondition : None
|
||||
PostCondtion : None
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::IntersectDataFormat(
|
||||
IN PVOID pContext,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSP_PIN Pin,
|
||||
IN PKSDATARANGE pDataRange,
|
||||
IN PKSDATARANGE pMatchingDataRange,
|
||||
IN ULONG ulDataBufferSize,
|
||||
OUT PVOID pData OPTIONAL,
|
||||
OUT PULONG pulDataSize
|
||||
)
|
||||
{
|
||||
NTSTATUS ntStatus = STATUS_SUCCESS;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
if ( ulDataBufferSize < sizeof(KS_DATARANGE_BDA_TRANSPORT) )
|
||||
{
|
||||
*pulDataSize = sizeof( KS_DATARANGE_BDA_TRANSPORT );
|
||||
ntStatus = STATUS_BUFFER_OVERFLOW;
|
||||
goto ExitDataFormat;
|
||||
}
|
||||
else if (pDataRange->FormatSize < sizeof (KS_DATARANGE_BDA_TRANSPORT))
|
||||
{
|
||||
ntStatus = STATUS_NO_MATCH;
|
||||
goto ExitDataFormat;
|
||||
}
|
||||
else
|
||||
{
|
||||
*pulDataSize = sizeof( KS_DATARANGE_BDA_TRANSPORT );
|
||||
RtlCopyMemory( pData, (PVOID)pDataRange, sizeof(KS_DATARANGE_BDA_TRANSPORT));
|
||||
ntStatus = STATUS_SUCCESS;
|
||||
PrintBdaTransport((PKS_DATARANGE_BDA_TRANSPORT)pDataRange);
|
||||
}
|
||||
|
||||
ExitDataFormat:
|
||||
PrintFunctionExit(__FUNCTION__,ntStatus);
|
||||
return ntStatus;
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::SetDigitalDemodProperty
|
||||
Description : Sets the value of the digital demodulator node properties.
|
||||
IN PARAM :
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property Set request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property set request
|
||||
PreCondition : None
|
||||
PostCondtion : Demodulator propery Set in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::SetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntSetStatus = STATUS_SUCCESS;
|
||||
CTransportPin* pPin;
|
||||
CTunerFilter* pFilter;
|
||||
ModulationType NewModulationType;
|
||||
BinaryConvolutionCodeRate NewFecRate;
|
||||
ULONG ulNewSymbolRate;
|
||||
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
// Call the BDA support library to
|
||||
// validate that the node type is associated with this pin.
|
||||
//
|
||||
ntSetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntSetStatus))
|
||||
{
|
||||
// Obtain a pointer to the pin object.
|
||||
//
|
||||
// Because the property dispatch table calls the CTransportPin::SetDigitalDemodProperty()
|
||||
// method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
//
|
||||
pPin = reinterpret_cast<CTransportPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
// Retrieve the filter context from the pin context.
|
||||
//
|
||||
pFilter = pPin->GetFilter();
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Set : %s : %lu(%l)",GetDemodPropertyString(pKSProperty->Id),*pulProperty,*((LONG*)(pulProperty))));
|
||||
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_MODULATION_TYPE:
|
||||
ntSetStatus = pFilter->SetModulatorType((ModulationType)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_TYPE:
|
||||
ntSetStatus = pFilter->SetInnerFecType(*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_RATE:
|
||||
ntSetStatus = pFilter->SetInnerFecRate((BinaryConvolutionCodeRate)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_TYPE:
|
||||
ntSetStatus = pFilter->SetOuterFecType(*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_RATE:
|
||||
ntSetStatus = pFilter->SetOuterFecRate((BinaryConvolutionCodeRate)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_SYMBOL_RATE:
|
||||
ntSetStatus = pFilter->SetSymbolRate(*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_SPECTRAL_INVERSION:
|
||||
ntSetStatus = pFilter->SetSpectralInversion((SpectralInversion)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_GUARD_INTERVAL:
|
||||
ntSetStatus = pFilter->SetGuardInterval((GuardInterval)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_TRANSMISSION_MODE:
|
||||
ntSetStatus = pFilter->SetTransmissionMode((TransmissionMode)*pulProperty);
|
||||
break;
|
||||
default:
|
||||
ntSetStatus = STATUS_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntSetStatus);
|
||||
|
||||
return ntSetStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::GetDigitalDemodProperty
|
||||
Description : Gets the value of the digital demodulator node properties.
|
||||
IN PARAM :
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property Get request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property Get request
|
||||
PreCondition : None
|
||||
PostCondtion : Demodulator propery returned in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::GetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntGetStatus = STATUS_SUCCESS;
|
||||
CTransportPin* pPin;
|
||||
CTunerFilter* pFilter;
|
||||
BDATUNER_DEVICE_PARAMETER DemodProperty;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
// Call the BDA support library to
|
||||
// validate that the node type is associated with this pin.
|
||||
//
|
||||
ntGetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntGetStatus))
|
||||
{
|
||||
// Obtain a pointer to the pin object.
|
||||
//
|
||||
// Because the property dispatch table calls the CTransportPin::GetDigitalDemodProperty()
|
||||
// method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
//
|
||||
pPin = reinterpret_cast<CTransportPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
// Retrieve the filter context from the pin context.
|
||||
//
|
||||
pFilter = pPin->GetFilter();
|
||||
|
||||
ntGetStatus = pFilter->GetDemodProperty(&DemodProperty);
|
||||
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_MODULATION_TYPE:
|
||||
*pulProperty = (ModulationType)DemodProperty.CurrentModulationType;
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_TYPE:
|
||||
*pulProperty = BDA_FEC_VITERBI;
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_RATE:
|
||||
*pulProperty = (BinaryConvolutionCodeRate)DemodProperty.InnerFecRate;
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_TYPE:
|
||||
*pulProperty = BDA_FEC_VITERBI;
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_RATE:
|
||||
*pulProperty = (BinaryConvolutionCodeRate)DemodProperty.OuterFecRate;
|
||||
break;
|
||||
case KSPROPERTY_BDA_SYMBOL_RATE:
|
||||
*pulProperty = DemodProperty.ulSymbolRate;
|
||||
break;
|
||||
case KSPROPERTY_BDA_SPECTRAL_INVERSION:
|
||||
*pulProperty = (SpectralInversion) DemodProperty.CurrentSpectralInversion;
|
||||
break;
|
||||
case KSPROPERTY_BDA_GUARD_INTERVAL:
|
||||
*pulProperty = (GuardInterval) DemodProperty.CurrentGuardInterval;
|
||||
break;
|
||||
case KSPROPERTY_BDA_TRANSMISSION_MODE:
|
||||
*pulProperty = (TransmissionMode) DemodProperty.CurrentTransmissionMode;
|
||||
break;
|
||||
default:
|
||||
ntGetStatus = STATUS_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Get : %s : %ul",GetDemodPropertyString(pKSProperty->Id),*pulProperty));
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntGetStatus);
|
||||
return ntGetStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::SetExtendedProperty
|
||||
Description : Sets the Extended Property of the Tuner
|
||||
IN PARAM : IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property request
|
||||
Else error from the lower device
|
||||
PreCondition : None
|
||||
PostCondtion : Extended Property Set in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::SetExtendedProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntSetStatus = STATUS_SUCCESS;
|
||||
CTransportPin * pPin = NULL;
|
||||
CTunerFilter* pFilter = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
//Call the BDA support library to
|
||||
//validate that the node type is associated with the pin.
|
||||
|
||||
//The BdaValidateNodeProperty function validates that a node property
|
||||
//request is associated with a specific pin.
|
||||
ntSetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntSetStatus))
|
||||
{
|
||||
//Obtain a pointer to the pin object.
|
||||
|
||||
//Because the property dispatch table calls the CTransportPin::SetExtendedProperty()
|
||||
//method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
|
||||
pPin = reinterpret_cast<CTransportPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
//Retrieve the filter context from the pin context.
|
||||
pFilter = pPin->GetFilter();
|
||||
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Set : %s : %lu(%l)",
|
||||
GetExtendedPropertyString(pKSProperty->Id),
|
||||
*pulProperty,
|
||||
*((LONG*)(pulProperty))));
|
||||
|
||||
//Retrieve the actual filter parameter.
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_DISEQC:
|
||||
ntSetStatus = pFilter->SendDiseqcCommand((PDISEQC_COMMAND) pulProperty);
|
||||
break;
|
||||
default:
|
||||
ntSetStatus = STATUS_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntSetStatus);
|
||||
return ntSetStatus;
|
||||
}
|
||||
|
||||
//Debug Functions
|
||||
VOID PrintBdaTransport(PKS_DATARANGE_BDA_TRANSPORT pBdaTransport)
|
||||
{
|
||||
PrintBdaTransportInfo(&pBdaTransport->BdaTransportInfo);
|
||||
PrintKsDataFormat(&pBdaTransport->DataRange);
|
||||
|
||||
}
|
||||
|
||||
VOID PrintBdaTransportInfo(PBDA_TRANSPORT_INFO pBdaTransportInfo)
|
||||
{
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalPacket = %lu Bytes\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalPacket));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalFrame = %lu Bytes\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalFrame));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalFrameAlignment = %lu\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalFrameAlignment));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalPacket = %ll (Normal Active Movie units)\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalPacket));
|
||||
|
||||
}
|
||||
|
||||
VOID PrintKsDataFormat(PKSDATAFORMAT pKsDataFormat)
|
||||
{
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->FormatSize = %lu\n",
|
||||
pKsDataFormat->FormatSize));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->Flags = %lu\n",
|
||||
pKsDataFormat->Flags));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->SampleSize = %lu\n",
|
||||
pKsDataFormat->SampleSize));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->Reserved = %lu\n",
|
||||
pKsDataFormat->Reserved));
|
||||
|
||||
}
|
||||
|
||||
PCHAR GetDemodPropertyString(ULONG ulDemodProperty)
|
||||
{
|
||||
switch(ulDemodProperty)
|
||||
{
|
||||
case KSPROPERTY_BDA_MODULATION_TYPE:
|
||||
return "KSPROPERTY_BDA_MODULATION_TYPE";
|
||||
|
||||
case KSPROPERTY_BDA_INNER_FEC_TYPE:
|
||||
return "KSPROPERTY_BDA_INNER_FEC_TYPE";
|
||||
|
||||
case KSPROPERTY_BDA_INNER_FEC_RATE:
|
||||
return "KSPROPERTY_BDA_INNER_FEC_RATE";
|
||||
|
||||
case KSPROPERTY_BDA_OUTER_FEC_TYPE:
|
||||
return "KSPROPERTY_BDA_OUTER_FEC_TYPE";
|
||||
|
||||
case KSPROPERTY_BDA_OUTER_FEC_RATE:
|
||||
return "KSPROPERTY_BDA_OUTER_FEC_RATE";
|
||||
|
||||
case KSPROPERTY_BDA_SYMBOL_RATE:
|
||||
return "KSPROPERTY_BDA_SYMBOL_RATE";
|
||||
|
||||
case KSPROPERTY_BDA_SPECTRAL_INVERSION:
|
||||
return "KSPROPERTY_BDA_SPECTRAL_INVERSION";
|
||||
|
||||
case KSPROPERTY_BDA_GUARD_INTERVAL:
|
||||
return "KSPROPERTY_BDA_GUARD_INTERVAL";
|
||||
|
||||
case KSPROPERTY_BDA_TRANSMISSION_MODE:
|
||||
return "KSPROPERTY_BDA_TRANSMISSION_MODE";
|
||||
|
||||
default:
|
||||
return "KSPROPERTY_BDA_INVALID_PROPERTY";
|
||||
}
|
||||
}
|
||||
|
||||
PCHAR GetExtendedPropertyString(ULONG ulTunerExtendedProperty)
|
||||
{
|
||||
switch(ulTunerExtendedProperty)
|
||||
{
|
||||
case KSPROPERTY_BDA_DISEQC:
|
||||
return "KSPROPERTY_BDA_DISEQC";
|
||||
default:
|
||||
return "KSPROPERTY_BDA_INVALID_PROPERTY";
|
||||
}
|
||||
}
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TransportPin.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file contains header for the Transport pin on the Tuner
|
||||
filter.
|
||||
|
||||
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 */
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
VOID PrintBdaTransport(PKS_DATARANGE_BDA_TRANSPORT pBdaTransport);
|
||||
VOID PrintBdaTransportInfo(PBDA_TRANSPORT_INFO pBdaTransportInfo);
|
||||
VOID PrintKsDataFormat(PKSDATAFORMAT pKsDataFormat);
|
||||
PCHAR GetDemodPropertyString(ULONG ulDemodProperty);
|
||||
PCHAR GetExtendedPropertyString(ULONG ulTunerExtendedProperty);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::IntersectDataFormat
|
||||
Description : Enables connection of the output pin with a downstream filter.
|
||||
IN PARAM :
|
||||
OUT PARAM : <NTSTATUS> Status of the IntersectDataFormat
|
||||
PreCondition : None
|
||||
PostCondtion : None
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::IntersectDataFormat(
|
||||
IN PVOID pContext,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSP_PIN Pin,
|
||||
IN PKSDATARANGE pDataRange,
|
||||
IN PKSDATARANGE pMatchingDataRange,
|
||||
IN ULONG ulDataBufferSize,
|
||||
OUT PVOID pData OPTIONAL,
|
||||
OUT PULONG pulDataSize
|
||||
)
|
||||
{
|
||||
NTSTATUS ntStatus = STATUS_SUCCESS;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
if ( ulDataBufferSize < sizeof(KS_DATARANGE_BDA_TRANSPORT) )
|
||||
{
|
||||
*pulDataSize = sizeof( KS_DATARANGE_BDA_TRANSPORT );
|
||||
ntStatus = STATUS_BUFFER_OVERFLOW;
|
||||
goto ExitDataFormat;
|
||||
}
|
||||
else if (pDataRange->FormatSize < sizeof (KS_DATARANGE_BDA_TRANSPORT))
|
||||
{
|
||||
ntStatus = STATUS_NO_MATCH;
|
||||
goto ExitDataFormat;
|
||||
}
|
||||
else
|
||||
{
|
||||
*pulDataSize = sizeof( KS_DATARANGE_BDA_TRANSPORT );
|
||||
RtlCopyMemory( pData, (PVOID)pDataRange, sizeof(KS_DATARANGE_BDA_TRANSPORT));
|
||||
ntStatus = STATUS_SUCCESS;
|
||||
PrintBdaTransport((PKS_DATARANGE_BDA_TRANSPORT)pDataRange);
|
||||
}
|
||||
|
||||
ExitDataFormat:
|
||||
PrintFunctionExit(__FUNCTION__,ntStatus);
|
||||
return ntStatus;
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::SetDigitalDemodProperty
|
||||
Description : Sets the value of the digital demodulator node properties.
|
||||
IN PARAM :
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property Set request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property set request
|
||||
PreCondition : None
|
||||
PostCondtion : Demodulator propery Set in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::SetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntSetStatus = STATUS_SUCCESS;
|
||||
CTransportPin* pPin;
|
||||
CTunerFilter* pFilter;
|
||||
ModulationType NewModulationType;
|
||||
BinaryConvolutionCodeRate NewFecRate;
|
||||
ULONG ulNewSymbolRate;
|
||||
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
// Call the BDA support library to
|
||||
// validate that the node type is associated with this pin.
|
||||
//
|
||||
ntSetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntSetStatus))
|
||||
{
|
||||
// Obtain a pointer to the pin object.
|
||||
//
|
||||
// Because the property dispatch table calls the CTransportPin::SetDigitalDemodProperty()
|
||||
// method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
//
|
||||
pPin = reinterpret_cast<CTransportPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
// Retrieve the filter context from the pin context.
|
||||
//
|
||||
pFilter = pPin->GetFilter();
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Set : %s : %lu(%l)",GetDemodPropertyString(pKSProperty->Id),*pulProperty,*((LONG*)(pulProperty))));
|
||||
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_MODULATION_TYPE:
|
||||
ntSetStatus = pFilter->SetModulatorType((ModulationType)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_TYPE:
|
||||
ntSetStatus = pFilter->SetInnerFecType(*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_RATE:
|
||||
ntSetStatus = pFilter->SetInnerFecRate((BinaryConvolutionCodeRate)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_TYPE:
|
||||
ntSetStatus = pFilter->SetOuterFecType(*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_RATE:
|
||||
ntSetStatus = pFilter->SetOuterFecRate((BinaryConvolutionCodeRate)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_SYMBOL_RATE:
|
||||
ntSetStatus = pFilter->SetSymbolRate(*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_SPECTRAL_INVERSION:
|
||||
ntSetStatus = pFilter->SetSpectralInversion((SpectralInversion)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_GUARD_INTERVAL:
|
||||
ntSetStatus = pFilter->SetGuardInterval((GuardInterval)*pulProperty);
|
||||
break;
|
||||
case KSPROPERTY_BDA_TRANSMISSION_MODE:
|
||||
ntSetStatus = pFilter->SetTransmissionMode((TransmissionMode)*pulProperty);
|
||||
break;
|
||||
default:
|
||||
ntSetStatus = STATUS_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntSetStatus);
|
||||
|
||||
return ntSetStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::GetDigitalDemodProperty
|
||||
Description : Gets the value of the digital demodulator node properties.
|
||||
IN PARAM :
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property Get request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property Get request
|
||||
PreCondition : None
|
||||
PostCondtion : Demodulator propery returned in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::GetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntGetStatus = STATUS_SUCCESS;
|
||||
CTransportPin* pPin;
|
||||
CTunerFilter* pFilter;
|
||||
BDATUNER_DEVICE_PARAMETER DemodProperty;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
// Call the BDA support library to
|
||||
// validate that the node type is associated with this pin.
|
||||
//
|
||||
ntGetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntGetStatus))
|
||||
{
|
||||
// Obtain a pointer to the pin object.
|
||||
//
|
||||
// Because the property dispatch table calls the CTransportPin::GetDigitalDemodProperty()
|
||||
// method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
//
|
||||
pPin = reinterpret_cast<CTransportPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
// Retrieve the filter context from the pin context.
|
||||
//
|
||||
pFilter = pPin->GetFilter();
|
||||
|
||||
ntGetStatus = pFilter->GetDemodProperty(&DemodProperty);
|
||||
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_MODULATION_TYPE:
|
||||
*pulProperty = (ModulationType)DemodProperty.CurrentModulationType;
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_TYPE:
|
||||
*pulProperty = BDA_FEC_VITERBI;
|
||||
break;
|
||||
case KSPROPERTY_BDA_INNER_FEC_RATE:
|
||||
*pulProperty = (BinaryConvolutionCodeRate)DemodProperty.InnerFecRate;
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_TYPE:
|
||||
*pulProperty = BDA_FEC_VITERBI;
|
||||
break;
|
||||
case KSPROPERTY_BDA_OUTER_FEC_RATE:
|
||||
*pulProperty = (BinaryConvolutionCodeRate)DemodProperty.OuterFecRate;
|
||||
break;
|
||||
case KSPROPERTY_BDA_SYMBOL_RATE:
|
||||
*pulProperty = DemodProperty.ulSymbolRate;
|
||||
break;
|
||||
case KSPROPERTY_BDA_SPECTRAL_INVERSION:
|
||||
*pulProperty = (SpectralInversion) DemodProperty.CurrentSpectralInversion;
|
||||
break;
|
||||
case KSPROPERTY_BDA_GUARD_INTERVAL:
|
||||
*pulProperty = (GuardInterval) DemodProperty.CurrentGuardInterval;
|
||||
break;
|
||||
case KSPROPERTY_BDA_TRANSMISSION_MODE:
|
||||
*pulProperty = (TransmissionMode) DemodProperty.CurrentTransmissionMode;
|
||||
break;
|
||||
default:
|
||||
ntGetStatus = STATUS_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Get : %s : %ul",GetDemodPropertyString(pKSProperty->Id),*pulProperty));
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntGetStatus);
|
||||
return ntGetStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTransportPin::SetExtendedProperty
|
||||
Description : Sets the Extended Property of the Tuner
|
||||
IN PARAM : IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property request
|
||||
Else error from the lower device
|
||||
PreCondition : None
|
||||
PostCondtion : Extended Property Set in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTransportPin::SetExtendedProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntSetStatus = STATUS_SUCCESS;
|
||||
CTransportPin * pPin = NULL;
|
||||
CTunerFilter* pFilter = NULL;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
//Call the BDA support library to
|
||||
//validate that the node type is associated with the pin.
|
||||
|
||||
//The BdaValidateNodeProperty function validates that a node property
|
||||
//request is associated with a specific pin.
|
||||
ntSetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntSetStatus))
|
||||
{
|
||||
//Obtain a pointer to the pin object.
|
||||
|
||||
//Because the property dispatch table calls the CTransportPin::SetExtendedProperty()
|
||||
//method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
|
||||
pPin = reinterpret_cast<CTransportPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
//Retrieve the filter context from the pin context.
|
||||
pFilter = pPin->GetFilter();
|
||||
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Set : %s : %lu(%l)",
|
||||
GetExtendedPropertyString(pKSProperty->Id),
|
||||
*pulProperty,
|
||||
*((LONG*)(pulProperty))));
|
||||
|
||||
//Retrieve the actual filter parameter.
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_DISEQC:
|
||||
ntSetStatus = pFilter->SendDiseqcCommand((PDISEQC_COMMAND) pulProperty);
|
||||
break;
|
||||
default:
|
||||
ntSetStatus = STATUS_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntSetStatus);
|
||||
return ntSetStatus;
|
||||
}
|
||||
|
||||
//Debug Functions
|
||||
VOID PrintBdaTransport(PKS_DATARANGE_BDA_TRANSPORT pBdaTransport)
|
||||
{
|
||||
PrintBdaTransportInfo(&pBdaTransport->BdaTransportInfo);
|
||||
PrintKsDataFormat(&pBdaTransport->DataRange);
|
||||
|
||||
}
|
||||
|
||||
VOID PrintBdaTransportInfo(PBDA_TRANSPORT_INFO pBdaTransportInfo)
|
||||
{
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalPacket = %lu Bytes\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalPacket));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalFrame = %lu Bytes\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalFrame));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalFrameAlignment = %lu\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalFrameAlignment));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pBdaTransportInfo->ulcbPhyiscalPacket = %ll (Normal Active Movie units)\n",
|
||||
pBdaTransportInfo->ulcbPhyiscalPacket));
|
||||
|
||||
}
|
||||
|
||||
VOID PrintKsDataFormat(PKSDATAFORMAT pKsDataFormat)
|
||||
{
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->FormatSize = %lu\n",
|
||||
pKsDataFormat->FormatSize));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->Flags = %lu\n",
|
||||
pKsDataFormat->Flags));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->SampleSize = %lu\n",
|
||||
pKsDataFormat->SampleSize));
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL, ("pKsDataFormat->Reserved = %lu\n",
|
||||
pKsDataFormat->Reserved));
|
||||
|
||||
}
|
||||
|
||||
PCHAR GetDemodPropertyString(ULONG ulDemodProperty)
|
||||
{
|
||||
switch(ulDemodProperty)
|
||||
{
|
||||
case KSPROPERTY_BDA_MODULATION_TYPE:
|
||||
return "KSPROPERTY_BDA_MODULATION_TYPE";
|
||||
|
||||
case KSPROPERTY_BDA_INNER_FEC_TYPE:
|
||||
return "KSPROPERTY_BDA_INNER_FEC_TYPE";
|
||||
|
||||
case KSPROPERTY_BDA_INNER_FEC_RATE:
|
||||
return "KSPROPERTY_BDA_INNER_FEC_RATE";
|
||||
|
||||
case KSPROPERTY_BDA_OUTER_FEC_TYPE:
|
||||
return "KSPROPERTY_BDA_OUTER_FEC_TYPE";
|
||||
|
||||
case KSPROPERTY_BDA_OUTER_FEC_RATE:
|
||||
return "KSPROPERTY_BDA_OUTER_FEC_RATE";
|
||||
|
||||
case KSPROPERTY_BDA_SYMBOL_RATE:
|
||||
return "KSPROPERTY_BDA_SYMBOL_RATE";
|
||||
|
||||
case KSPROPERTY_BDA_SPECTRAL_INVERSION:
|
||||
return "KSPROPERTY_BDA_SPECTRAL_INVERSION";
|
||||
|
||||
case KSPROPERTY_BDA_GUARD_INTERVAL:
|
||||
return "KSPROPERTY_BDA_GUARD_INTERVAL";
|
||||
|
||||
case KSPROPERTY_BDA_TRANSMISSION_MODE:
|
||||
return "KSPROPERTY_BDA_TRANSMISSION_MODE";
|
||||
|
||||
default:
|
||||
return "KSPROPERTY_BDA_INVALID_PROPERTY";
|
||||
}
|
||||
}
|
||||
|
||||
PCHAR GetExtendedPropertyString(ULONG ulTunerExtendedProperty)
|
||||
{
|
||||
switch(ulTunerExtendedProperty)
|
||||
{
|
||||
case KSPROPERTY_BDA_DISEQC:
|
||||
return "KSPROPERTY_BDA_DISEQC";
|
||||
default:
|
||||
return "KSPROPERTY_BDA_INVALID_PROPERTY";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,212 +1,212 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CPin.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the General Pin related declarations
|
||||
|
||||
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 */
|
||||
/* 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 : CTunerPin::PinCreate
|
||||
Description : An AVStream minidriver's AVStrMiniPinCreate routine is
|
||||
called when a pin is created. Typically, this routine is
|
||||
used by minidrivers that want to initialize the context
|
||||
and resources associated with the pin.
|
||||
IN PARAM : <PKSPIN> Pointer to the KSPIN that was just created.
|
||||
<PIRP> Pointer to the IRP_MJ_CREATE for Pin
|
||||
OUT PARAM : <NTSTATUS> STATUS_SUCCESS in case of successful pin creation
|
||||
Failure Code in other cases
|
||||
PreCondition : None
|
||||
PostCondtion : Creates the Tuner pin object and associates it
|
||||
with the filter object.
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : None
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTunerPin::PinCreate( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
)
|
||||
{
|
||||
NTSTATUS ntCreateStatus = STATUS_SUCCESS;
|
||||
CTunerPin* pPin = NULL; //Pointer to the Current Pin Instance
|
||||
CTunerFilter* pFilter = NULL; //Pointer to the Filter associted with the Pin
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("Sizeof DISEQC_COMMAND = %d\n",sizeof(DISEQC_COMMAND)));
|
||||
//Obtain a pointer to the filter object for which the input pin is created.
|
||||
|
||||
//The KsGetFilterFromIrp function returns the AVStream filter object
|
||||
//associated with a given IRP.
|
||||
pFilter = reinterpret_cast<CTunerFilter*>(KsGetFilterFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
//Create the Tuner pin object.
|
||||
pPin = new(PagedPool,TUNER_MEM_TAG) CTunerPin; // Tags the allocated memory
|
||||
|
||||
if (pPin)
|
||||
{
|
||||
//Link the pin context to the filter context.
|
||||
//That is, set the input pin's filter pointer data member to the obtained filter pointer.
|
||||
pPin->SetFilter( pFilter);
|
||||
|
||||
//Link the pin context to the passed in pointer to the KSPIN structure.
|
||||
pKSPin->Context = pPin;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ntCreateStatus = STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntCreateStatus);
|
||||
return ntCreateStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTunerPin::PinClose
|
||||
Description : An AVStream minidriver's AVStrMiniPinClose routine is
|
||||
called when a pin is closed.It usually is provided by
|
||||
minidrivers that want to free the context and resources
|
||||
associated with the pin.
|
||||
IN PARAM : <PKSPIN> Pointer to the KSPIN that was just closed.
|
||||
<PIRP> Pointer to the IRP_MJ_CLOSE for Pin.
|
||||
OUT PARAM : <NTSTATUS> STATUS_SUCCESS in case of successful pin Close
|
||||
Failure Code in other cases
|
||||
PreCondition : None
|
||||
PostCondtion : Deletes the previously created Tuner pin object.
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTunerPin::PinClose( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
)
|
||||
{
|
||||
NTSTATUS ntCloseStatus = STATUS_SUCCESS;
|
||||
CTunerPin* pPin = NULL; //Pointer to the Current Pin Instance
|
||||
CTunerFilter* pFilter = NULL; //Pointer to the Filter associted with the Pin
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
// Retrieve the Tuner pin object from the passed in
|
||||
// KSPIN structure's context member.
|
||||
//
|
||||
pPin = reinterpret_cast<CTunerPin*>(pKSPin->Context);
|
||||
|
||||
if(IS_VALID(pPin))
|
||||
{
|
||||
delete pPin;
|
||||
pPin = NULL;
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntCloseStatus);
|
||||
return ntCloseStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTunerPin::GetSignalStatus
|
||||
Description : Retrieves the value of the signal statistics properties.
|
||||
IN PARAM : IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
OUT PULONG pulProperty
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property request
|
||||
Else error from the lower device
|
||||
PreCondition : None
|
||||
PostCondtion : Signal Status read in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTunerPin::GetSignalStatus(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
OUT PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntGetStatus = STATUS_SUCCESS;
|
||||
CTunerPin* pPin = NULL; //Pointer to the Current Pin Instance
|
||||
CTunerFilter* pFilter = NULL; //Pointer to the Filter associted with the Pin
|
||||
BDATUNER_DEVICE_STATUS TunerStatus;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
|
||||
// Call the BDA support library to
|
||||
// validate that the node type is associated with this pin.
|
||||
ntGetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntGetStatus))
|
||||
{
|
||||
// Obtain a pointer to the pin object.
|
||||
//
|
||||
// Because the property dispatch table calls the CTunerPin::GetSignalStatus()
|
||||
// method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
//
|
||||
pPin = reinterpret_cast<CTunerPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
// Retrieve the filter context from the pin context.
|
||||
//
|
||||
pFilter = pPin->GetFilter();
|
||||
|
||||
ntGetStatus = pFilter->GetStatus( &TunerStatus);
|
||||
if (ntGetStatus == STATUS_SUCCESS)
|
||||
{
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_SIGNAL_LOCKED:
|
||||
*pulProperty = TunerStatus.fSignalLocked;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Lock = 0x%02X\n",*pulProperty));
|
||||
break;
|
||||
case KSPROPERTY_BDA_SIGNAL_QUALITY:
|
||||
*pulProperty = TunerStatus.dwSignalQuality;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Quality = %lu\n",*pulProperty));
|
||||
break;
|
||||
case KSPROPERTY_BDA_SIGNAL_PRESENT:
|
||||
*pulProperty = TunerStatus.fCarrierPresent;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Present = 0x%02X\n",*pulProperty));
|
||||
break;
|
||||
case KSPROPERTY_BDA_SIGNAL_STRENGTH:
|
||||
*pulProperty = TunerStatus.dwSignalStrength;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Strength = %lu\n", *pulProperty));
|
||||
break;
|
||||
default:
|
||||
ntGetStatus = STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntGetStatus);
|
||||
return ntGetStatus;
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CPin.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the General Pin related declarations
|
||||
|
||||
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 */
|
||||
/* 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 : CTunerPin::PinCreate
|
||||
Description : An AVStream minidriver's AVStrMiniPinCreate routine is
|
||||
called when a pin is created. Typically, this routine is
|
||||
used by minidrivers that want to initialize the context
|
||||
and resources associated with the pin.
|
||||
IN PARAM : <PKSPIN> Pointer to the KSPIN that was just created.
|
||||
<PIRP> Pointer to the IRP_MJ_CREATE for Pin
|
||||
OUT PARAM : <NTSTATUS> STATUS_SUCCESS in case of successful pin creation
|
||||
Failure Code in other cases
|
||||
PreCondition : None
|
||||
PostCondtion : Creates the Tuner pin object and associates it
|
||||
with the filter object.
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : None
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTunerPin::PinCreate( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
)
|
||||
{
|
||||
NTSTATUS ntCreateStatus = STATUS_SUCCESS;
|
||||
CTunerPin* pPin = NULL; //Pointer to the Current Pin Instance
|
||||
CTunerFilter* pFilter = NULL; //Pointer to the Filter associted with the Pin
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
SkyWalkerDebugPrint(ENTRY_LEVEL,("Sizeof DISEQC_COMMAND = %d\n",sizeof(DISEQC_COMMAND)));
|
||||
//Obtain a pointer to the filter object for which the input pin is created.
|
||||
|
||||
//The KsGetFilterFromIrp function returns the AVStream filter object
|
||||
//associated with a given IRP.
|
||||
pFilter = reinterpret_cast<CTunerFilter*>(KsGetFilterFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
//Create the Tuner pin object.
|
||||
pPin = new(PagedPool,TUNER_MEM_TAG) CTunerPin; // Tags the allocated memory
|
||||
|
||||
if (pPin)
|
||||
{
|
||||
//Link the pin context to the filter context.
|
||||
//That is, set the input pin's filter pointer data member to the obtained filter pointer.
|
||||
pPin->SetFilter( pFilter);
|
||||
|
||||
//Link the pin context to the passed in pointer to the KSPIN structure.
|
||||
pKSPin->Context = pPin;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ntCreateStatus = STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntCreateStatus);
|
||||
return ntCreateStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTunerPin::PinClose
|
||||
Description : An AVStream minidriver's AVStrMiniPinClose routine is
|
||||
called when a pin is closed.It usually is provided by
|
||||
minidrivers that want to free the context and resources
|
||||
associated with the pin.
|
||||
IN PARAM : <PKSPIN> Pointer to the KSPIN that was just closed.
|
||||
<PIRP> Pointer to the IRP_MJ_CLOSE for Pin.
|
||||
OUT PARAM : <NTSTATUS> STATUS_SUCCESS in case of successful pin Close
|
||||
Failure Code in other cases
|
||||
PreCondition : None
|
||||
PostCondtion : Deletes the previously created Tuner pin object.
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : This is called from the PASSIVE_LEVEL_IRQL
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTunerPin::PinClose( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
)
|
||||
{
|
||||
NTSTATUS ntCloseStatus = STATUS_SUCCESS;
|
||||
CTunerPin* pPin = NULL; //Pointer to the Current Pin Instance
|
||||
CTunerFilter* pFilter = NULL; //Pointer to the Filter associted with the Pin
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
// Retrieve the Tuner pin object from the passed in
|
||||
// KSPIN structure's context member.
|
||||
//
|
||||
pPin = reinterpret_cast<CTunerPin*>(pKSPin->Context);
|
||||
|
||||
if(IS_VALID(pPin))
|
||||
{
|
||||
delete pPin;
|
||||
pPin = NULL;
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntCloseStatus);
|
||||
return ntCloseStatus;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Function : CTunerPin::GetSignalStatus
|
||||
Description : Retrieves the value of the signal statistics properties.
|
||||
IN PARAM : IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
OUT PULONG pulProperty
|
||||
OUT PARAM : <NTSTATUS> Status SUCCESS in case Valid Property request
|
||||
STATUS_INVALID_PARAMETER in case of Invalid property request
|
||||
Else error from the lower device
|
||||
PreCondition : None
|
||||
PostCondtion : Signal Status read in case of successful execution
|
||||
Logic : NONE
|
||||
Assumption : NONE
|
||||
Note : NONE
|
||||
Revision History: <REVISION HISTORY OF THE FUNCTION, MUST BE MAINTAINED BY MAINTAINER >
|
||||
*****************************************************************************/
|
||||
NTSTATUS CTunerPin::GetSignalStatus(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
OUT PULONG pulProperty
|
||||
)
|
||||
{
|
||||
NTSTATUS ntGetStatus = STATUS_SUCCESS;
|
||||
CTunerPin* pPin = NULL; //Pointer to the Current Pin Instance
|
||||
CTunerFilter* pFilter = NULL; //Pointer to the Filter associted with the Pin
|
||||
BDATUNER_DEVICE_STATUS TunerStatus;
|
||||
|
||||
PrintFunctionEntry(__FUNCTION__);
|
||||
|
||||
|
||||
// Call the BDA support library to
|
||||
// validate that the node type is associated with this pin.
|
||||
ntGetStatus = BdaValidateNodeProperty( pIoRequestPacket, pKSProperty);
|
||||
if (NT_SUCCESS( ntGetStatus))
|
||||
{
|
||||
// Obtain a pointer to the pin object.
|
||||
//
|
||||
// Because the property dispatch table calls the CTunerPin::GetSignalStatus()
|
||||
// method directly, the method must retrieve a pointer to the underlying pin object.
|
||||
//
|
||||
pPin = reinterpret_cast<CTunerPin *>(KsGetPinFromIrp(pIoRequestPacket)->Context);
|
||||
|
||||
// Retrieve the filter context from the pin context.
|
||||
//
|
||||
pFilter = pPin->GetFilter();
|
||||
|
||||
ntGetStatus = pFilter->GetStatus( &TunerStatus);
|
||||
if (ntGetStatus == STATUS_SUCCESS)
|
||||
{
|
||||
switch (pKSProperty->Id)
|
||||
{
|
||||
case KSPROPERTY_BDA_SIGNAL_LOCKED:
|
||||
*pulProperty = TunerStatus.fSignalLocked;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Lock = 0x%02X\n",*pulProperty));
|
||||
break;
|
||||
case KSPROPERTY_BDA_SIGNAL_QUALITY:
|
||||
*pulProperty = TunerStatus.dwSignalQuality;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Quality = %lu\n",*pulProperty));
|
||||
break;
|
||||
case KSPROPERTY_BDA_SIGNAL_PRESENT:
|
||||
*pulProperty = TunerStatus.fCarrierPresent;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Present = 0x%02X\n",*pulProperty));
|
||||
break;
|
||||
case KSPROPERTY_BDA_SIGNAL_STRENGTH:
|
||||
*pulProperty = TunerStatus.dwSignalStrength;
|
||||
SkyWalkerDebugPrint(EXTREME_LEVEL,("Signal Strength = %lu\n", *pulProperty));
|
||||
break;
|
||||
default:
|
||||
ntGetStatus = STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PrintFunctionExit(__FUNCTION__,ntGetStatus);
|
||||
return ntGetStatus;
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,142 +1,142 @@
|
|||
; SkyWalker2Installer.INF -- This file installs SkyWalker2 Driver
|
||||
;
|
||||
[Version]
|
||||
signature="$CHICAGO$"
|
||||
Class=Media
|
||||
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
|
||||
Provider=%SGI%
|
||||
CatalogFile=SkyWalker2Installer.cat
|
||||
DriverVer= 8/17/2009
|
||||
|
||||
; F i l e c o p y i n g s e c t i o n s (where the files go to).
|
||||
;
|
||||
[DestinationDirs]
|
||||
DefaultDestDir=10,system32\drivers
|
||||
|
||||
[Manufacturer]
|
||||
%SGI%=SGI
|
||||
|
||||
[ControlFlags]
|
||||
;ExcludeFromSelect=*
|
||||
;ExcludeFromSelect.NT=*
|
||||
|
||||
; =================== Generic ==================================
|
||||
|
||||
[SGI]
|
||||
%SkyWalker2.DeviceDesc%=SkyWalker2.Device,USB\VID_09C0&PID_0206 ;SkyWalker2
|
||||
|
||||
[SkyWalker2.Device]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration, KSCAPTUR.Registration, BDA.Installation
|
||||
AddReg = SkyWalker2.AddReg
|
||||
CopyFiles = SkyWalker2.CopyDrivers
|
||||
|
||||
[SkyWalker2.Device.NT]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
|
||||
;AddReg = SkyWalker2.AddReg
|
||||
CopyFiles = SkyWalker2.CopyDrivers
|
||||
; KnownFiles = SkyWalker2.KnownFiles
|
||||
|
||||
[SkyWalker2.Device.NT.Services]
|
||||
Addservice=SkyWalker2TVTuner, 0x00000002, SkyWalker2.AddService
|
||||
|
||||
[SkyWalker2.AddService]
|
||||
DisplayName=%SkyWalker2.FriendlyName%
|
||||
ServiceType=1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType=3 ; SERVICE_DEMAND_START
|
||||
ErrorControl=1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary=%10%\System32\Drivers\SkyWalker1TVTuner.sys
|
||||
LoadOrderGroup=ExtendedBase
|
||||
|
||||
[SkyWalker2.CopyDrivers]
|
||||
SkyWalker1TVTuner.sys
|
||||
|
||||
[SkyWalker2.AddReg]
|
||||
HKR,,DevLoader,,*NTKERN
|
||||
HKR,,NTMPDriver,,SkyWalker1TVTuner.sys
|
||||
HKR,,PageOutWhenUnopened,3,01
|
||||
|
||||
[SkyWalker2.Device.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,SkyWalker2.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,SkyWalker2.Tuner.Interfaces
|
||||
|
||||
[SkyWalker2.Device.NT.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,SkyWalker2.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,SkyWalker2.Tuner.Interfaces
|
||||
|
||||
[SkyWalker2.Tuner.Interfaces]
|
||||
AddReg=SkyWalker2.Tuner.Interfaces.AddReg
|
||||
|
||||
[SkyWalker2.Tuner.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker2.Tuner.FriendlyName%
|
||||
|
||||
[SkyWalker2.Receiver.Interfaces]
|
||||
AddReg=SkyWalker2.Receiver.Interfaces.AddReg
|
||||
|
||||
[SkyWalker2.Receiver.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker2.Receiver.FriendlyName%
|
||||
|
||||
|
||||
[Strings]
|
||||
;non-localizable
|
||||
SGI="Plethorasoft"
|
||||
MfgName="SGI"
|
||||
SkyWalker2.DeviceDesc="SkyWalker2 BDA TVTuner"
|
||||
SkyWalker2.Tuner.FriendlyName="SkyWalker2 TV Tuner"
|
||||
SkyWalker2.Receiver.FriendlyName="SkyWalker2 TV Receiver"
|
||||
SkyWalker2.Tuner="SkyWalker2.Tuner"
|
||||
KSProxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
|
||||
KSCATEGORY_BDA_NETWORK_TUNER="{71985F48-1CA1-11d3-9CC8-00C04F7971E0}"
|
||||
KSCATEGORY_BDA_RECEIVER_COMPONENT="{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}"
|
||||
SKYWALKER_TUNER="{5C4E764F-AB43-46A9-B21E-8529C70F0A23}"
|
||||
SKYWALKER_CAPTURE="{0F8F74D9-E524-4D05-BB60-F0C69ACB1756}"
|
||||
|
||||
;
|
||||
; ServiceType values
|
||||
SERVICE_KERNEL_DRIVER = 0x00000001
|
||||
SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
|
||||
SERVICE_ADAPTER = 0x00000004
|
||||
SERVICE_RECOGNIZER_DRIVER = 0x00000008
|
||||
SERVICE_WIN32_OWN_PROCESS = 0x00000010
|
||||
SERVICE_WIN32_SHARE_PROCESS = 0x00000020
|
||||
SERVICE_INTERACTIVE_PROCESS = 0x00000100
|
||||
SERVICE_INTERACTIVE_SHARE_PROCESS = 0x00000120
|
||||
|
||||
; StartType values
|
||||
SERVICE_BOOT_START = 0x00000000
|
||||
SERVICE_SYSTEM_START = 0x00000001
|
||||
SERVICE_AUTO_START = 0x00000002
|
||||
SERVICE_DEMAND_START = 0x00000003
|
||||
SERVICE_DISABLED = 0x00000004
|
||||
|
||||
; ErrorControl values
|
||||
SERVICE_ERROR_IGNORE = 0x00000000
|
||||
SERVICE_ERROR_NORMAL = 0x00000001
|
||||
SERVICE_ERROR_SEVERE = 0x00000002
|
||||
SERVICE_ERROR_CRITICAL = 0x00000003
|
||||
|
||||
; Characteristic flags
|
||||
NCF_VIRTUAL = 0x0001
|
||||
NCF_WRAPPER = 0x0002
|
||||
NCF_PHYSICAL = 0x0004
|
||||
NCF_HIDDEN = 0x0008
|
||||
NCF_NO_SERVICE = 0x0010
|
||||
NCF_NOT_USER_REMOVABLE = 0x0020
|
||||
NCF_HAS_UI = 0x0080
|
||||
NCF_MODEM = 0x0100
|
||||
|
||||
; Registry types
|
||||
REG_MULTI_SZ = 0x10000
|
||||
REG_EXPAND_SZ = 0x20000
|
||||
REG_DWORD = 0x10001
|
||||
|
||||
; Win9x Compatible Types
|
||||
REG_BINARY = 17
|
||||
REG_SZ = 0
|
||||
|
||||
; Service install flags
|
||||
SPSVCINST_TAGTOFRONT = 0x1
|
||||
; SkyWalker2Installer.INF -- This file installs SkyWalker2 Driver
|
||||
;
|
||||
[Version]
|
||||
signature="$CHICAGO$"
|
||||
Class=Media
|
||||
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
|
||||
Provider=%SGI%
|
||||
CatalogFile=SkyWalker2Installer.cat
|
||||
DriverVer= 8/17/2009
|
||||
|
||||
; F i l e c o p y i n g s e c t i o n s (where the files go to).
|
||||
;
|
||||
[DestinationDirs]
|
||||
DefaultDestDir=10,system32\drivers
|
||||
|
||||
[Manufacturer]
|
||||
%SGI%=SGI
|
||||
|
||||
[ControlFlags]
|
||||
;ExcludeFromSelect=*
|
||||
;ExcludeFromSelect.NT=*
|
||||
|
||||
; =================== Generic ==================================
|
||||
|
||||
[SGI]
|
||||
%SkyWalker2.DeviceDesc%=SkyWalker2.Device,USB\VID_09C0&PID_0206 ;SkyWalker2
|
||||
|
||||
[SkyWalker2.Device]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration, KSCAPTUR.Registration, BDA.Installation
|
||||
AddReg = SkyWalker2.AddReg
|
||||
CopyFiles = SkyWalker2.CopyDrivers
|
||||
|
||||
[SkyWalker2.Device.NT]
|
||||
Include = ks.inf, kscaptur.inf, bda.inf
|
||||
needs = KS.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
|
||||
;AddReg = SkyWalker2.AddReg
|
||||
CopyFiles = SkyWalker2.CopyDrivers
|
||||
; KnownFiles = SkyWalker2.KnownFiles
|
||||
|
||||
[SkyWalker2.Device.NT.Services]
|
||||
Addservice=SkyWalker2TVTuner, 0x00000002, SkyWalker2.AddService
|
||||
|
||||
[SkyWalker2.AddService]
|
||||
DisplayName=%SkyWalker2.FriendlyName%
|
||||
ServiceType=1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType=3 ; SERVICE_DEMAND_START
|
||||
ErrorControl=1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary=%10%\System32\Drivers\SkyWalker1TVTuner.sys
|
||||
LoadOrderGroup=ExtendedBase
|
||||
|
||||
[SkyWalker2.CopyDrivers]
|
||||
SkyWalker1TVTuner.sys
|
||||
|
||||
[SkyWalker2.AddReg]
|
||||
HKR,,DevLoader,,*NTKERN
|
||||
HKR,,NTMPDriver,,SkyWalker1TVTuner.sys
|
||||
HKR,,PageOutWhenUnopened,3,01
|
||||
|
||||
[SkyWalker2.Device.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,SkyWalker2.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,SkyWalker2.Tuner.Interfaces
|
||||
|
||||
[SkyWalker2.Device.NT.Interfaces]
|
||||
AddInterface=%KSCATEGORY_BDA_RECEIVER_COMPONENT%,%SKYWALKER_CAPTURE%,SkyWalker2.Receiver.Interfaces
|
||||
AddInterface=%KSCATEGORY_BDA_NETWORK_TUNER%,%SKYWALKER_TUNER%,SkyWalker2.Tuner.Interfaces
|
||||
|
||||
[SkyWalker2.Tuner.Interfaces]
|
||||
AddReg=SkyWalker2.Tuner.Interfaces.AddReg
|
||||
|
||||
[SkyWalker2.Tuner.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker2.Tuner.FriendlyName%
|
||||
|
||||
[SkyWalker2.Receiver.Interfaces]
|
||||
AddReg=SkyWalker2.Receiver.Interfaces.AddReg
|
||||
|
||||
[SkyWalker2.Receiver.Interfaces.AddReg]
|
||||
HKR,,CLSID,,%KSProxy.CLSID%
|
||||
HKR,,FriendlyName,,%SkyWalker2.Receiver.FriendlyName%
|
||||
|
||||
|
||||
[Strings]
|
||||
;non-localizable
|
||||
SGI="Plethorasoft"
|
||||
MfgName="SGI"
|
||||
SkyWalker2.DeviceDesc="SkyWalker2 BDA TVTuner"
|
||||
SkyWalker2.Tuner.FriendlyName="SkyWalker2 TV Tuner"
|
||||
SkyWalker2.Receiver.FriendlyName="SkyWalker2 TV Receiver"
|
||||
SkyWalker2.Tuner="SkyWalker2.Tuner"
|
||||
KSProxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
|
||||
KSCATEGORY_BDA_NETWORK_TUNER="{71985F48-1CA1-11d3-9CC8-00C04F7971E0}"
|
||||
KSCATEGORY_BDA_RECEIVER_COMPONENT="{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}"
|
||||
SKYWALKER_TUNER="{5C4E764F-AB43-46A9-B21E-8529C70F0A23}"
|
||||
SKYWALKER_CAPTURE="{0F8F74D9-E524-4D05-BB60-F0C69ACB1756}"
|
||||
|
||||
;
|
||||
; ServiceType values
|
||||
SERVICE_KERNEL_DRIVER = 0x00000001
|
||||
SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
|
||||
SERVICE_ADAPTER = 0x00000004
|
||||
SERVICE_RECOGNIZER_DRIVER = 0x00000008
|
||||
SERVICE_WIN32_OWN_PROCESS = 0x00000010
|
||||
SERVICE_WIN32_SHARE_PROCESS = 0x00000020
|
||||
SERVICE_INTERACTIVE_PROCESS = 0x00000100
|
||||
SERVICE_INTERACTIVE_SHARE_PROCESS = 0x00000120
|
||||
|
||||
; StartType values
|
||||
SERVICE_BOOT_START = 0x00000000
|
||||
SERVICE_SYSTEM_START = 0x00000001
|
||||
SERVICE_AUTO_START = 0x00000002
|
||||
SERVICE_DEMAND_START = 0x00000003
|
||||
SERVICE_DISABLED = 0x00000004
|
||||
|
||||
; ErrorControl values
|
||||
SERVICE_ERROR_IGNORE = 0x00000000
|
||||
SERVICE_ERROR_NORMAL = 0x00000001
|
||||
SERVICE_ERROR_SEVERE = 0x00000002
|
||||
SERVICE_ERROR_CRITICAL = 0x00000003
|
||||
|
||||
; Characteristic flags
|
||||
NCF_VIRTUAL = 0x0001
|
||||
NCF_WRAPPER = 0x0002
|
||||
NCF_PHYSICAL = 0x0004
|
||||
NCF_HIDDEN = 0x0008
|
||||
NCF_NO_SERVICE = 0x0010
|
||||
NCF_NOT_USER_REMOVABLE = 0x0020
|
||||
NCF_HAS_UI = 0x0080
|
||||
NCF_MODEM = 0x0100
|
||||
|
||||
; Registry types
|
||||
REG_MULTI_SZ = 0x10000
|
||||
REG_EXPAND_SZ = 0x20000
|
||||
REG_DWORD = 0x10001
|
||||
|
||||
; Win9x Compatible Types
|
||||
REG_BINARY = 17
|
||||
REG_SZ = 0
|
||||
|
||||
; Service install flags
|
||||
SPSVCINST_TAGTOFRONT = 0x1
|
||||
SPSVCINST_ASSOCSERVICE = 0x2
|
||||
|
|
@ -1,62 +1,62 @@
|
|||
#############################################################################
|
||||
# Shree Ganesha Inc.
|
||||
# Sources File for the Skywalker1 TV Tuner
|
||||
# Date : 29th September, 2009
|
||||
# Description : This file is a must for the Compilation of the
|
||||
# Skywalker Driver.
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
TARGETNAME=SkyWalker1TVTuner # Set driver's name
|
||||
TARGETTYPE=DRIVER # Set type of file built, for example, program, DLL, or driver
|
||||
# For BDA minidriver, set to DRIVER.
|
||||
TARGETPATH=obj$(BUILD_ALT_DIR) # Set destination directory for the built file
|
||||
# Depending on whether your build environment is "free" or "checked",
|
||||
# the BUILD_ALT_DIR variable appends "fre" or "chk" to the \obj subdirectory.
|
||||
DRIVERTYPE=WDM # Set type of driver, can be set to either WDM or VXD.
|
||||
# For BDA, set to WDM.
|
||||
|
||||
# Generate .SYM and .PDB (map) files. These files map names to addresses.
|
||||
# Required to debug on Win9x.
|
||||
USE_MAPSYM=1
|
||||
|
||||
# Point to the header files that the sample source requires.
|
||||
INCLUDES= \
|
||||
$(DDK_INC_PATH); \
|
||||
$(DDK_INC_PATH)\wdm; \
|
||||
$(SDK_INC_PATH); \
|
||||
$(SDK_PATH)\AMovie\Inc; \
|
||||
$(INCLUDES)
|
||||
|
||||
# Point to the library files that the sample source requires.
|
||||
TARGETLIBS= \
|
||||
$(DDK_LIB_PATH)\ks.lib \
|
||||
$(DDK_LIB_PATH)\ksguid.lib \
|
||||
$(DDK_LIB_PATH)\BdaSup.lib \
|
||||
$(DDK_LIB_PATH)\usbd.lib
|
||||
|
||||
# The following macros are used with the Soft-ICE debugging tool.
|
||||
!ifdef BUILD_SOFTICE_SYMBOLS
|
||||
TARGETPATHEX=$(TARGETPATH)\$(TARGET_DIRECTORY)
|
||||
|
||||
NTTARGETFILES=$(TARGETPATH)\$(TARGETNAME).dbg
|
||||
|
||||
NTTARGETFILES=$(TARGETPATHEX)\$(TARGETNAME).nms $(NTTARGETFILES)
|
||||
!endif
|
||||
|
||||
# Source files that must be compiled.
|
||||
SOURCES = SkyWalker1TunerPin.cpp \
|
||||
SkyWalker1AntennaPin.cpp \
|
||||
SkyWalker1CaptureFilter.cpp \
|
||||
SkyWalker1CaptureFilterDefinitions.cpp \
|
||||
SkyWalker1CapturePin.cpp \
|
||||
SkyWalker1Control.cpp \
|
||||
SkyWalker1Device.cpp \
|
||||
SkyWalker1Main.cpp \
|
||||
SkyWalker1PnP.cpp \
|
||||
SkyWalker1TransportPin.cpp \
|
||||
SkyWalker1TunerFilter.cpp \
|
||||
SkyWalker1TunerFilterDefinitions.cpp \
|
||||
SkyWalker1USB.cpp \
|
||||
SkyWalker1Utility.cpp
|
||||
#############################################################################
|
||||
# Shree Ganesha Inc.
|
||||
# Sources File for the Skywalker1 TV Tuner
|
||||
# Date : 29th September, 2009
|
||||
# Description : This file is a must for the Compilation of the
|
||||
# Skywalker Driver.
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
TARGETNAME=SkyWalker1TVTuner # Set driver's name
|
||||
TARGETTYPE=DRIVER # Set type of file built, for example, program, DLL, or driver
|
||||
# For BDA minidriver, set to DRIVER.
|
||||
TARGETPATH=obj$(BUILD_ALT_DIR) # Set destination directory for the built file
|
||||
# Depending on whether your build environment is "free" or "checked",
|
||||
# the BUILD_ALT_DIR variable appends "fre" or "chk" to the \obj subdirectory.
|
||||
DRIVERTYPE=WDM # Set type of driver, can be set to either WDM or VXD.
|
||||
# For BDA, set to WDM.
|
||||
|
||||
# Generate .SYM and .PDB (map) files. These files map names to addresses.
|
||||
# Required to debug on Win9x.
|
||||
USE_MAPSYM=1
|
||||
|
||||
# Point to the header files that the sample source requires.
|
||||
INCLUDES= \
|
||||
$(DDK_INC_PATH); \
|
||||
$(DDK_INC_PATH)\wdm; \
|
||||
$(SDK_INC_PATH); \
|
||||
$(SDK_PATH)\AMovie\Inc; \
|
||||
$(INCLUDES)
|
||||
|
||||
# Point to the library files that the sample source requires.
|
||||
TARGETLIBS= \
|
||||
$(DDK_LIB_PATH)\ks.lib \
|
||||
$(DDK_LIB_PATH)\ksguid.lib \
|
||||
$(DDK_LIB_PATH)\BdaSup.lib \
|
||||
$(DDK_LIB_PATH)\usbd.lib
|
||||
|
||||
# The following macros are used with the Soft-ICE debugging tool.
|
||||
!ifdef BUILD_SOFTICE_SYMBOLS
|
||||
TARGETPATHEX=$(TARGETPATH)\$(TARGET_DIRECTORY)
|
||||
|
||||
NTTARGETFILES=$(TARGETPATH)\$(TARGETNAME).dbg
|
||||
|
||||
NTTARGETFILES=$(TARGETPATHEX)\$(TARGETNAME).nms $(NTTARGETFILES)
|
||||
!endif
|
||||
|
||||
# Source files that must be compiled.
|
||||
SOURCES = SkyWalker1TunerPin.cpp \
|
||||
SkyWalker1AntennaPin.cpp \
|
||||
SkyWalker1CaptureFilter.cpp \
|
||||
SkyWalker1CaptureFilterDefinitions.cpp \
|
||||
SkyWalker1CapturePin.cpp \
|
||||
SkyWalker1Control.cpp \
|
||||
SkyWalker1Device.cpp \
|
||||
SkyWalker1Main.cpp \
|
||||
SkyWalker1PnP.cpp \
|
||||
SkyWalker1TransportPin.cpp \
|
||||
SkyWalker1TunerFilter.cpp \
|
||||
SkyWalker1TunerFilterDefinitions.cpp \
|
||||
SkyWalker1USB.cpp \
|
||||
SkyWalker1Utility.cpp
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue