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
|
|
@ -1,102 +1,102 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1AntennaPin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Antenna Pin related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_ANTENNA_PIN_H
|
||||
#define __SKYWALKER1_ANTENNA_PIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1TunerPin.h"
|
||||
#include "SkyWalker1Extended.h" //For the Extended BDA
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//Antenna Pin class.
|
||||
class CAntennaPin : public CTunerPin
|
||||
{
|
||||
public:
|
||||
|
||||
static NTSTATUS PinSetDeviceState(
|
||||
IN PKSPIN Pin,
|
||||
IN KSSTATE ToState,
|
||||
IN KSSTATE FromState
|
||||
);
|
||||
|
||||
static NTSTATUS IntersectDataFormat(
|
||||
IN PVOID pContext,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSP_PIN Pin,
|
||||
IN PKSDATARANGE DataRange,
|
||||
IN PKSDATARANGE MatchingDataRange,
|
||||
IN ULONG DataBufferSize,
|
||||
OUT PVOID Data OPTIONAL,
|
||||
OUT PULONG DataSize
|
||||
);
|
||||
|
||||
//Network provider and AVStream use these functions
|
||||
//to set and get properties of nodes that are controlled
|
||||
//by the input pin.
|
||||
|
||||
static NTSTATUS GetTunerProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
static NTSTATUS SetTunerProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
|
||||
|
||||
//Network provider and AVStream use these functions
|
||||
//to set and get properties of nodes that are controlled
|
||||
//by the input pin.
|
||||
static NTSTATUS GetTunerLnbProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
static NTSTATUS SetTunerLnbProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
private:
|
||||
|
||||
KSSTATE m_KsState;
|
||||
};
|
||||
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1AntennaPin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Antenna Pin related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_ANTENNA_PIN_H
|
||||
#define __SKYWALKER1_ANTENNA_PIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1TunerPin.h"
|
||||
#include "SkyWalker1Extended.h" //For the Extended BDA
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//Antenna Pin class.
|
||||
class CAntennaPin : public CTunerPin
|
||||
{
|
||||
public:
|
||||
|
||||
static NTSTATUS PinSetDeviceState(
|
||||
IN PKSPIN Pin,
|
||||
IN KSSTATE ToState,
|
||||
IN KSSTATE FromState
|
||||
);
|
||||
|
||||
static NTSTATUS IntersectDataFormat(
|
||||
IN PVOID pContext,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSP_PIN Pin,
|
||||
IN PKSDATARANGE DataRange,
|
||||
IN PKSDATARANGE MatchingDataRange,
|
||||
IN ULONG DataBufferSize,
|
||||
OUT PVOID Data OPTIONAL,
|
||||
OUT PULONG DataSize
|
||||
);
|
||||
|
||||
//Network provider and AVStream use these functions
|
||||
//to set and get properties of nodes that are controlled
|
||||
//by the input pin.
|
||||
|
||||
static NTSTATUS GetTunerProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
static NTSTATUS SetTunerProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
|
||||
|
||||
//Network provider and AVStream use these functions
|
||||
//to set and get properties of nodes that are controlled
|
||||
//by the input pin.
|
||||
static NTSTATUS GetTunerLnbProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
static NTSTATUS SetTunerLnbProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
private:
|
||||
|
||||
KSSTATE m_KsState;
|
||||
};
|
||||
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_TRANSPORT_PIN_H*/
|
||||
|
|
@ -1,72 +1,72 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CaptureFilter.h
|
||||
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
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SKYWALKER1_CAPTURE_FILTER_H
|
||||
#define SKYWALKER1_CAPTURE_FILTER_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The Capture filter class.
|
||||
class CCaptureFilter
|
||||
{
|
||||
public:
|
||||
|
||||
//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.
|
||||
CCaptureFilter (IN PKSFILTER Filter);
|
||||
|
||||
//The capture filter destructor.
|
||||
~CCaptureFilter ();
|
||||
|
||||
//This is the filter creation dispatch for the capture filter. It
|
||||
//creates the CCaptureFilter object, associates it with the AVStream
|
||||
//object, and bags it for easy cleanup later.
|
||||
static NTSTATUS Create( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
//The AVStream filter object associated with this CCaptureFilter.
|
||||
PKSFILTER m_Filter;
|
||||
|
||||
//This is the bag cleanup callback for the CCaptureFilter. Not providing
|
||||
//one would cause ExFreePool to be used. This is not good for C++
|
||||
//constructed objects. We simply delete the object here.
|
||||
static void Cleanup ( IN CCaptureFilter *CapFilter );
|
||||
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CaptureFilter.h
|
||||
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
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SKYWALKER1_CAPTURE_FILTER_H
|
||||
#define SKYWALKER1_CAPTURE_FILTER_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The Capture filter class.
|
||||
class CCaptureFilter
|
||||
{
|
||||
public:
|
||||
|
||||
//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.
|
||||
CCaptureFilter (IN PKSFILTER Filter);
|
||||
|
||||
//The capture filter destructor.
|
||||
~CCaptureFilter ();
|
||||
|
||||
//This is the filter creation dispatch for the capture filter. It
|
||||
//creates the CCaptureFilter object, associates it with the AVStream
|
||||
//object, and bags it for easy cleanup later.
|
||||
static NTSTATUS Create( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
//The AVStream filter object associated with this CCaptureFilter.
|
||||
PKSFILTER m_Filter;
|
||||
|
||||
//This is the bag cleanup callback for the CCaptureFilter. Not providing
|
||||
//one would cause ExFreePool to be used. This is not good for C++
|
||||
//constructed objects. We simply delete the object here.
|
||||
static void Cleanup ( IN CCaptureFilter *CapFilter );
|
||||
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*SKYWALKER1_CAPTURE_FILTER_H*/
|
||||
|
|
@ -1,161 +1,161 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CapturePin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file contains header for the video capture pin on the capture
|
||||
filter.
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//This Structure can be used in future for the
|
||||
//better stream management
|
||||
typedef struct _STREAM_POINTER_CONTEXT
|
||||
{
|
||||
ULONG ulFrameIndex;
|
||||
|
||||
} STREAM_POINTER_CONTEXT, *PSTREAM_POINTER_CONTEXT;
|
||||
|
||||
|
||||
//The video capture pin class.
|
||||
class CCapturePin : public ICaptureSink
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
//The AVStream pin we're associated with.
|
||||
PKSPIN m_Pin;
|
||||
|
||||
//Pointer to the internal device object for our capture device.
|
||||
//We access the Device through this object.
|
||||
CSkyWalker1Device *m_Device;
|
||||
|
||||
//The state we've put the hardware into. This allows us to keep track
|
||||
//of whether to do things like unpausing or restarting.
|
||||
HARDWARE_STATE m_HardwareState;
|
||||
|
||||
//The clock we've been assigned. As with other capture filters, we do
|
||||
//not expose a clock. If one has been assigned, we will use it to
|
||||
//time stamp packets (plus a reasonable delta to work the capture stream
|
||||
//in a preview graph).
|
||||
PIKSREFERENCECLOCK m_Clock;
|
||||
|
||||
//The transport information for this capture pin. The settings for device will be
|
||||
//programmed for this transport info.
|
||||
PBDA_TRANSPORT_INFO m_TransportInfo;
|
||||
|
||||
//This Variable is used to keep the count of the Streams sent for the
|
||||
//Data read
|
||||
ULONG m_CurrentFrameIndex;
|
||||
|
||||
//An indication of whether or not this pin has acquired the necessary
|
||||
//hardware resources to operate. When the pin reaches KSSTATE_ACQUIRE,
|
||||
//we attempt to acquire the hardware. This flag will be set based on
|
||||
//our success / failure.
|
||||
BOOLEAN m_AcquiredResources;
|
||||
|
||||
//Clean up any references we hold on frames in the queue. This is called
|
||||
//when we abruptly stop the fake hardware.
|
||||
NTSTATUS CleanupReferences ();
|
||||
|
||||
//This is the state transition handler for the capture pin. It attempts
|
||||
//to acquire resources for the capture pin (or releasing them if
|
||||
//necessary) and starts and stops the hardware as required.
|
||||
NTSTATUS SetState ( IN KSSTATE ToState,IN KSSTATE FromState);
|
||||
|
||||
//This is the processing dispatch for the capture pin. It handles
|
||||
//sending the Streams to the Device.
|
||||
NTSTATUS Process();
|
||||
|
||||
//This routine is not required as the Transport Information is already
|
||||
//provided into the CCapturePin but still using it to make the
|
||||
//settings flexible
|
||||
PBDA_TRANSPORT_INFO CaptureBdaTransportInfo ();
|
||||
|
||||
//This is the free callback from the bagged item (CCapturePin). If we
|
||||
//do not provide a callback when we bag the CCapturePin, ExFreePool
|
||||
//would be called. This is not desirable for C++ constructed objects.
|
||||
//We merely delete the object here.
|
||||
static void Cleanup (IN CCapturePin *Pin)
|
||||
{
|
||||
delete Pin;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//The capture pin's constructor. Initialize any non-0, non-NULL fields
|
||||
//(since new will have zero'ed the memory anyway) and set up our
|
||||
//device level pointers for access during capture routines.
|
||||
CCapturePin (IN PKSPIN Pin);
|
||||
|
||||
//The capture pin's destructor.
|
||||
~CCapturePin ();
|
||||
|
||||
CSkyWalker1Device* GetDevice()
|
||||
{
|
||||
return m_Device;
|
||||
}
|
||||
|
||||
//This is the capture sink notification mechanism for mapping completion.
|
||||
//When the device DPC detects that a given number of mappings have been
|
||||
//completed by the fake hardware, it signals the capture sink of this
|
||||
//through this method.
|
||||
virtual void ReleaseStream(IN ULONG ulStreamIndex);
|
||||
|
||||
//This is the creation dispatch for the capture pin. It creates
|
||||
//the CCapturePin object and associates it with the AVStream object
|
||||
//bagging it in the process.
|
||||
static NTSTATUS PinCreate( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
);
|
||||
|
||||
//This is the set device state dispatch for the pin. The routine bridges
|
||||
//to SetState() in the context of the CCapturePin.
|
||||
static NTSTATUS DispatchSetState (
|
||||
IN PKSPIN Pin,
|
||||
IN KSSTATE ToState,
|
||||
IN KSSTATE FromState
|
||||
)
|
||||
{
|
||||
return
|
||||
(reinterpret_cast<CCapturePin *>(Pin->Context))->
|
||||
SetState(ToState, FromState);
|
||||
}
|
||||
|
||||
//This is the processing dispatch for the capture pin. The routine
|
||||
//bridges to Process() in the context of the CCapturePin.
|
||||
static NTSTATUS DispatchProcess (IN PKSPIN Pin)
|
||||
{
|
||||
return
|
||||
(reinterpret_cast<CCapturePin *>(Pin->Context))->Process();
|
||||
}
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CapturePin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file contains header for the video capture pin on the capture
|
||||
filter.
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//This Structure can be used in future for the
|
||||
//better stream management
|
||||
typedef struct _STREAM_POINTER_CONTEXT
|
||||
{
|
||||
ULONG ulFrameIndex;
|
||||
|
||||
} STREAM_POINTER_CONTEXT, *PSTREAM_POINTER_CONTEXT;
|
||||
|
||||
|
||||
//The video capture pin class.
|
||||
class CCapturePin : public ICaptureSink
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
//The AVStream pin we're associated with.
|
||||
PKSPIN m_Pin;
|
||||
|
||||
//Pointer to the internal device object for our capture device.
|
||||
//We access the Device through this object.
|
||||
CSkyWalker1Device *m_Device;
|
||||
|
||||
//The state we've put the hardware into. This allows us to keep track
|
||||
//of whether to do things like unpausing or restarting.
|
||||
HARDWARE_STATE m_HardwareState;
|
||||
|
||||
//The clock we've been assigned. As with other capture filters, we do
|
||||
//not expose a clock. If one has been assigned, we will use it to
|
||||
//time stamp packets (plus a reasonable delta to work the capture stream
|
||||
//in a preview graph).
|
||||
PIKSREFERENCECLOCK m_Clock;
|
||||
|
||||
//The transport information for this capture pin. The settings for device will be
|
||||
//programmed for this transport info.
|
||||
PBDA_TRANSPORT_INFO m_TransportInfo;
|
||||
|
||||
//This Variable is used to keep the count of the Streams sent for the
|
||||
//Data read
|
||||
ULONG m_CurrentFrameIndex;
|
||||
|
||||
//An indication of whether or not this pin has acquired the necessary
|
||||
//hardware resources to operate. When the pin reaches KSSTATE_ACQUIRE,
|
||||
//we attempt to acquire the hardware. This flag will be set based on
|
||||
//our success / failure.
|
||||
BOOLEAN m_AcquiredResources;
|
||||
|
||||
//Clean up any references we hold on frames in the queue. This is called
|
||||
//when we abruptly stop the fake hardware.
|
||||
NTSTATUS CleanupReferences ();
|
||||
|
||||
//This is the state transition handler for the capture pin. It attempts
|
||||
//to acquire resources for the capture pin (or releasing them if
|
||||
//necessary) and starts and stops the hardware as required.
|
||||
NTSTATUS SetState ( IN KSSTATE ToState,IN KSSTATE FromState);
|
||||
|
||||
//This is the processing dispatch for the capture pin. It handles
|
||||
//sending the Streams to the Device.
|
||||
NTSTATUS Process();
|
||||
|
||||
//This routine is not required as the Transport Information is already
|
||||
//provided into the CCapturePin but still using it to make the
|
||||
//settings flexible
|
||||
PBDA_TRANSPORT_INFO CaptureBdaTransportInfo ();
|
||||
|
||||
//This is the free callback from the bagged item (CCapturePin). If we
|
||||
//do not provide a callback when we bag the CCapturePin, ExFreePool
|
||||
//would be called. This is not desirable for C++ constructed objects.
|
||||
//We merely delete the object here.
|
||||
static void Cleanup (IN CCapturePin *Pin)
|
||||
{
|
||||
delete Pin;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//The capture pin's constructor. Initialize any non-0, non-NULL fields
|
||||
//(since new will have zero'ed the memory anyway) and set up our
|
||||
//device level pointers for access during capture routines.
|
||||
CCapturePin (IN PKSPIN Pin);
|
||||
|
||||
//The capture pin's destructor.
|
||||
~CCapturePin ();
|
||||
|
||||
CSkyWalker1Device* GetDevice()
|
||||
{
|
||||
return m_Device;
|
||||
}
|
||||
|
||||
//This is the capture sink notification mechanism for mapping completion.
|
||||
//When the device DPC detects that a given number of mappings have been
|
||||
//completed by the fake hardware, it signals the capture sink of this
|
||||
//through this method.
|
||||
virtual void ReleaseStream(IN ULONG ulStreamIndex);
|
||||
|
||||
//This is the creation dispatch for the capture pin. It creates
|
||||
//the CCapturePin object and associates it with the AVStream object
|
||||
//bagging it in the process.
|
||||
static NTSTATUS PinCreate( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
);
|
||||
|
||||
//This is the set device state dispatch for the pin. The routine bridges
|
||||
//to SetState() in the context of the CCapturePin.
|
||||
static NTSTATUS DispatchSetState (
|
||||
IN PKSPIN Pin,
|
||||
IN KSSTATE ToState,
|
||||
IN KSSTATE FromState
|
||||
)
|
||||
{
|
||||
return
|
||||
(reinterpret_cast<CCapturePin *>(Pin->Context))->
|
||||
SetState(ToState, FromState);
|
||||
}
|
||||
|
||||
//This is the processing dispatch for the capture pin. The routine
|
||||
//bridges to Process() in the context of the CCapturePin.
|
||||
static NTSTATUS DispatchProcess (IN PKSPIN Pin)
|
||||
{
|
||||
return
|
||||
(reinterpret_cast<CCapturePin *>(Pin->Context))->Process();
|
||||
}
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,149 +1,149 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CommonDef.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : File to hold the common definitions for the Driver
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef __SKYWALKER1_COMMON_DEF_H
|
||||
#define __SKYWALKER1_COMMON_DEF_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
#define TUNER_MEM_TAG 'MNUT'
|
||||
#define CAPTURE_MEM_TAG 'MPAC'
|
||||
|
||||
// Implementation GUID for SkyWalker1 Tuner and Capture
|
||||
// Must match the KSSTRING used in the installation INFs interface sections
|
||||
//Tuner Filter GUID {5C4E764F-AB43-46A9-B21E-8529C70F0A23}
|
||||
#define GUID_SKYWALKER_TUNER_FILTER\
|
||||
0x5C4E764F, 0xAB43, 0x46A9, 0xB2, 0x1E, 0x85, 0x29, 0xC7, 0x0F, 0x0A, 0x23
|
||||
DEFINE_GUIDSTRUCT("5C4E764F-AB43-46A9-B21E-8529C70F0A23", SKYWALKER_TUNER_FILTER);
|
||||
#define SKYWALKER_TUNER_FILTER DEFINE_GUIDNAMED(SKYWALKER_TUNER_FILTER)
|
||||
|
||||
//Capture Filter GUID {0F8F74D9-E524-4D05-BB60-F0C69ACB1756}
|
||||
#define GUID_SKYWALKER_CAPTURE_FILTER\
|
||||
0x0F8F74D9, 0xE524, 0x4D05, 0xBB, 0x60, 0xF0, 0xC6, 0x9A, 0xCB, 0x17, 0x56
|
||||
DEFINE_GUIDSTRUCT("0F8F74D9-E524-4D05-BB60-F0C69ACB1756", SKYWALKER_CAPTURE_FILTER);
|
||||
// Defines the SKYWALKER_CAPTURE_FILTER as a GUID.
|
||||
#define SKYWALKER_CAPTURE_FILTER DEFINE_GUIDNAMED(SKYWALKER_CAPTURE_FILTER)
|
||||
|
||||
//Medium GUID {2AEB4A94-FBB7-4FB1-8D74-243B91886EAB}
|
||||
#define GUID_SKYWALKER_TUNER_OUT_MEDIUM\
|
||||
0x2AEB4A94, 0xFBB7, 0x4FB1, 0x8D, 0x74, 0x24, 0x3B, 0x91, 0x88, 0x6E, 0xAB
|
||||
DEFINE_GUIDSTRUCT("2AEB4A94-FBB7-4FB1-8D74-243B91886EAB", SKYWALKER_TUNER_OUT_MEDIUM);
|
||||
// Defines the SKYWALKER_TUNER_OUT_MEDIUM as a GUID.
|
||||
#define SKYWALKER_TUNER_OUT_MEDIUM DEFINE_GUIDNAMED(SKYWALKER_TUNER_OUT_MEDIUM)
|
||||
|
||||
#define TRANSPORT_PACKET_SIZE 128 //188
|
||||
#define TRANSPORT_PACKET_COUNT 64 //512
|
||||
#define NUMBER_OF_FRAMES 8
|
||||
#define PACKET_PER_FRAME 2
|
||||
|
||||
#define SYMBOL_RATE_MIN 1000
|
||||
#define SYMBOL_RATE_MAX 45000
|
||||
|
||||
#define TUNER_FREQ_MIN 800000
|
||||
#define TUNER_FREQ_MAX 2250000
|
||||
|
||||
#define IS_VALID(X) (((X)!=NULL)?true:false)
|
||||
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
// Structure for the Tuner Parameters
|
||||
|
||||
typedef struct _BDATUNER_DEVICE_PARAMETER
|
||||
{
|
||||
//Tuner Properties
|
||||
ULONG ulCarrierFrequency;
|
||||
ULONG ulFrequencyMultiplier;
|
||||
ULONG ulBandWidth;
|
||||
Polarisation Polarity;
|
||||
ULONG ulRange;
|
||||
ULONG ulTransponder;
|
||||
|
||||
//LNB Parameters
|
||||
ULONG ulLnbLowLOFrequency;
|
||||
ULONG ulLnbHighLOFrequency;
|
||||
ULONG ulLnbSwitchFrequency;
|
||||
|
||||
//Demodulator Properties
|
||||
ULONG ulInnerFecType;
|
||||
BinaryConvolutionCodeRate InnerFecRate;
|
||||
ULONG ulOuterFecType;
|
||||
BinaryConvolutionCodeRate OuterFecRate;
|
||||
ModulationType CurrentModulationType;
|
||||
TransmissionMode CurrentTransmissionMode;
|
||||
GuardInterval CurrentGuardInterval;
|
||||
SpectralInversion CurrentSpectralInversion;
|
||||
ULONG ulSymbolRate;
|
||||
|
||||
} BDATUNER_DEVICE_PARAMETER, * PBDATUNER_DEVICE_PARAMETER;
|
||||
|
||||
|
||||
// Define a structure that represents the underlying device status.
|
||||
//
|
||||
typedef struct _BDATUNER_DEVICE_STATUS
|
||||
{
|
||||
//Tuner Status
|
||||
DWORD dwSignalStrength;
|
||||
DWORD dwSignalQuality;
|
||||
BOOLEAN fCarrierPresent;
|
||||
|
||||
//Demodulator Status
|
||||
BOOLEAN fSignalLocked;
|
||||
} BDATUNER_DEVICE_STATUS, * PBDATUNER_DEVICE_STATUS;
|
||||
|
||||
// ICaptureSink:
|
||||
//
|
||||
// This is a capture sink interface. The device level calls back the
|
||||
// CompleteMappings method passing the number of completed mappings for
|
||||
// the capture pin. This method is called during the device DPC.
|
||||
|
||||
class ICaptureSink
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void ReleaseStream (IN ULONG ulStreamIndex) = 0;
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
extern const BDA_FILTER_TEMPLATE TunerFilterTemplate;
|
||||
extern const BDA_FILTER_TEMPLATE SkyWalker1CaptureTemplate;
|
||||
extern const KSFILTER_DESCRIPTOR SkyWalker1TunerFilterDescriptor;
|
||||
extern const KSFILTER_DESCRIPTOR SkyWalker1CaptureFilterDescriptor;
|
||||
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
typedef enum _HARDWARE_STATE {
|
||||
|
||||
HardwareStopped = 0,
|
||||
HardwarePaused,
|
||||
HardwareRunning
|
||||
|
||||
} HARDWARE_STATE, *PHARDWARE_STATE;
|
||||
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif // __SKYWALKER1_COMMON_DEF_H
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1CommonDef.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : File to hold the common definitions for the Driver
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef __SKYWALKER1_COMMON_DEF_H
|
||||
#define __SKYWALKER1_COMMON_DEF_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
#define TUNER_MEM_TAG 'MNUT'
|
||||
#define CAPTURE_MEM_TAG 'MPAC'
|
||||
|
||||
// Implementation GUID for SkyWalker1 Tuner and Capture
|
||||
// Must match the KSSTRING used in the installation INFs interface sections
|
||||
//Tuner Filter GUID {5C4E764F-AB43-46A9-B21E-8529C70F0A23}
|
||||
#define GUID_SKYWALKER_TUNER_FILTER\
|
||||
0x5C4E764F, 0xAB43, 0x46A9, 0xB2, 0x1E, 0x85, 0x29, 0xC7, 0x0F, 0x0A, 0x23
|
||||
DEFINE_GUIDSTRUCT("5C4E764F-AB43-46A9-B21E-8529C70F0A23", SKYWALKER_TUNER_FILTER);
|
||||
#define SKYWALKER_TUNER_FILTER DEFINE_GUIDNAMED(SKYWALKER_TUNER_FILTER)
|
||||
|
||||
//Capture Filter GUID {0F8F74D9-E524-4D05-BB60-F0C69ACB1756}
|
||||
#define GUID_SKYWALKER_CAPTURE_FILTER\
|
||||
0x0F8F74D9, 0xE524, 0x4D05, 0xBB, 0x60, 0xF0, 0xC6, 0x9A, 0xCB, 0x17, 0x56
|
||||
DEFINE_GUIDSTRUCT("0F8F74D9-E524-4D05-BB60-F0C69ACB1756", SKYWALKER_CAPTURE_FILTER);
|
||||
// Defines the SKYWALKER_CAPTURE_FILTER as a GUID.
|
||||
#define SKYWALKER_CAPTURE_FILTER DEFINE_GUIDNAMED(SKYWALKER_CAPTURE_FILTER)
|
||||
|
||||
//Medium GUID {2AEB4A94-FBB7-4FB1-8D74-243B91886EAB}
|
||||
#define GUID_SKYWALKER_TUNER_OUT_MEDIUM\
|
||||
0x2AEB4A94, 0xFBB7, 0x4FB1, 0x8D, 0x74, 0x24, 0x3B, 0x91, 0x88, 0x6E, 0xAB
|
||||
DEFINE_GUIDSTRUCT("2AEB4A94-FBB7-4FB1-8D74-243B91886EAB", SKYWALKER_TUNER_OUT_MEDIUM);
|
||||
// Defines the SKYWALKER_TUNER_OUT_MEDIUM as a GUID.
|
||||
#define SKYWALKER_TUNER_OUT_MEDIUM DEFINE_GUIDNAMED(SKYWALKER_TUNER_OUT_MEDIUM)
|
||||
|
||||
#define TRANSPORT_PACKET_SIZE 128 //188
|
||||
#define TRANSPORT_PACKET_COUNT 64 //512
|
||||
#define NUMBER_OF_FRAMES 8
|
||||
#define PACKET_PER_FRAME 2
|
||||
|
||||
#define SYMBOL_RATE_MIN 1000
|
||||
#define SYMBOL_RATE_MAX 45000
|
||||
|
||||
#define TUNER_FREQ_MIN 800000
|
||||
#define TUNER_FREQ_MAX 2250000
|
||||
|
||||
#define IS_VALID(X) (((X)!=NULL)?true:false)
|
||||
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
// Structure for the Tuner Parameters
|
||||
|
||||
typedef struct _BDATUNER_DEVICE_PARAMETER
|
||||
{
|
||||
//Tuner Properties
|
||||
ULONG ulCarrierFrequency;
|
||||
ULONG ulFrequencyMultiplier;
|
||||
ULONG ulBandWidth;
|
||||
Polarisation Polarity;
|
||||
ULONG ulRange;
|
||||
ULONG ulTransponder;
|
||||
|
||||
//LNB Parameters
|
||||
ULONG ulLnbLowLOFrequency;
|
||||
ULONG ulLnbHighLOFrequency;
|
||||
ULONG ulLnbSwitchFrequency;
|
||||
|
||||
//Demodulator Properties
|
||||
ULONG ulInnerFecType;
|
||||
BinaryConvolutionCodeRate InnerFecRate;
|
||||
ULONG ulOuterFecType;
|
||||
BinaryConvolutionCodeRate OuterFecRate;
|
||||
ModulationType CurrentModulationType;
|
||||
TransmissionMode CurrentTransmissionMode;
|
||||
GuardInterval CurrentGuardInterval;
|
||||
SpectralInversion CurrentSpectralInversion;
|
||||
ULONG ulSymbolRate;
|
||||
|
||||
} BDATUNER_DEVICE_PARAMETER, * PBDATUNER_DEVICE_PARAMETER;
|
||||
|
||||
|
||||
// Define a structure that represents the underlying device status.
|
||||
//
|
||||
typedef struct _BDATUNER_DEVICE_STATUS
|
||||
{
|
||||
//Tuner Status
|
||||
DWORD dwSignalStrength;
|
||||
DWORD dwSignalQuality;
|
||||
BOOLEAN fCarrierPresent;
|
||||
|
||||
//Demodulator Status
|
||||
BOOLEAN fSignalLocked;
|
||||
} BDATUNER_DEVICE_STATUS, * PBDATUNER_DEVICE_STATUS;
|
||||
|
||||
// ICaptureSink:
|
||||
//
|
||||
// This is a capture sink interface. The device level calls back the
|
||||
// CompleteMappings method passing the number of completed mappings for
|
||||
// the capture pin. This method is called during the device DPC.
|
||||
|
||||
class ICaptureSink
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void ReleaseStream (IN ULONG ulStreamIndex) = 0;
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
extern const BDA_FILTER_TEMPLATE TunerFilterTemplate;
|
||||
extern const BDA_FILTER_TEMPLATE SkyWalker1CaptureTemplate;
|
||||
extern const KSFILTER_DESCRIPTOR SkyWalker1TunerFilterDescriptor;
|
||||
extern const KSFILTER_DESCRIPTOR SkyWalker1CaptureFilterDescriptor;
|
||||
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
typedef enum _HARDWARE_STATE {
|
||||
|
||||
HardwareStopped = 0,
|
||||
HardwarePaused,
|
||||
HardwareRunning
|
||||
|
||||
} HARDWARE_STATE, *PHARDWARE_STATE;
|
||||
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif // __SKYWALKER1_COMMON_DEF_H
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,127 +1,127 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Control.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Device Control related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_CONTROL_H
|
||||
#define __SKYWALKER1_CONTROL_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
|
||||
/* gp8psk commands */
|
||||
|
||||
/* Twinhan Vendor requests */
|
||||
#define TH_COMMAND_IN 0xC0
|
||||
#define TH_COMMAND_OUT 0xC1
|
||||
|
||||
/* gp8psk commands */
|
||||
|
||||
#define GET_8PSK_CONFIG 0x80 /* in */
|
||||
#define SET_8PSK_CONFIG 0x81
|
||||
#define I2C_WRITE 0x83
|
||||
#define I2C_READ 0x84
|
||||
#define ARM_TRANSFER 0x85
|
||||
#define TUNE_8PSK 0x86
|
||||
#define GET_SIGNAL_STRENGTH 0x87 /* in */
|
||||
#define LOAD_BCM4500 0x88
|
||||
#define BOOT_8PSK 0x89 /* in */
|
||||
#define START_INTERSIL 0x8A /* in */
|
||||
#define SET_LNB_VOLTAGE 0x8B
|
||||
#define SET_22KHZ_TONE 0x8C
|
||||
#define SEND_DISEQC_COMMAND 0x8D
|
||||
#define SET_DVB_MODE 0x8E
|
||||
#define SET_DN_SWITCH 0x8F
|
||||
#define GET_SIGNAL_LOCK 0x90 /* in */
|
||||
#define GET_SERIAL_NUMBER 0x93 /* in */
|
||||
#define USE_EXTRA_VOLT 0x94
|
||||
#define CW3K_INIT 0x9d
|
||||
|
||||
/* PSK_configuration bits */
|
||||
#define bm8pskStarted 0x01
|
||||
#define bm8pskFW_Loaded 0x02
|
||||
#define bmIntersilOn 0x04
|
||||
#define bmDVBmode 0x08
|
||||
#define bm22kHz 0x10
|
||||
#define bmSEL18V 0x20
|
||||
#define bmDCtuned 0x40
|
||||
#define bmArmed 0x80
|
||||
|
||||
/* Satellite modulation modes */
|
||||
#define ADV_MOD_DVB_QPSK 0 /* DVB-S QPSK */
|
||||
#define ADV_MOD_TURBO_QPSK 1 /* Turbo QPSK */
|
||||
#define ADV_MOD_TURBO_8PSK 2 /* Turbo 8PSK (also used for Trellis 8PSK) */
|
||||
#define ADV_MOD_TURBO_16QAM 3 /* Turbo 16QAM (also used for Trellis 8PSK) */
|
||||
|
||||
#define ADV_MOD_DCII_C_QPSK 4 /* Digicipher II Combo */
|
||||
#define ADV_MOD_DCII_I_QPSK 5 /* Digicipher II I-stream */
|
||||
#define ADV_MOD_DCII_Q_QPSK 6 /* Digicipher II Q-stream */
|
||||
#define ADV_MOD_DCII_C_OQPSK 7 /* Digicipher II offset QPSK */
|
||||
#define ADV_MOD_DSS_QPSK 8 /* DSS (DIRECTV) QPSK */
|
||||
#define ADV_MOD_DVB_BPSK 9 /* DVB-S BPSK */
|
||||
|
||||
#define GET_USB_SPEED 0x07
|
||||
#define USB_SPEED_LOW 0
|
||||
#define USB_SPEED_FULL 1
|
||||
#define USB_SPEED_HIGH 2
|
||||
|
||||
#define RESET_FX2 0x13
|
||||
|
||||
#define FW_VERSION_READ 0x0B
|
||||
#define VENDOR_STRING_READ 0x0C
|
||||
#define PRODUCT_STRING_READ 0x0D
|
||||
#define FW_BCD_VERSION_READ 0x14
|
||||
|
||||
#define SEC_VOLTAGE_13 0
|
||||
#define SEC_VOLTAGE_18 1
|
||||
|
||||
#define SEC_TONE_ON 0
|
||||
#define SEC_TONE_OFF 1
|
||||
|
||||
#define SWITCH_ON_TUNER 1
|
||||
#define SWITCH_OFF_TUNER 0
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
NTSTATUS GetSignalStatus( IN PKSDEVICE pKSDeviceObject,
|
||||
OUT PBOOLEAN pbSignalLockStatus
|
||||
);
|
||||
NTSTATUS ReadTunerSignalStrength( IN PKSDEVICE pKSDeviceObject,
|
||||
OUT PULONG pulSigStrength
|
||||
);
|
||||
NTSTATUS SetLnbVoltage(IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucVoltage);
|
||||
NTSTATUS TuneDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PBDATUNER_DEVICE_PARAMETER pDeviceParameter);
|
||||
NTSTATUS SetupTunerPower( IN PKSDEVICE pKSDeviceObject,
|
||||
IN BOOLEAN bOnOff);
|
||||
NTSTATUS SetStreamingControl( IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucOnOff);
|
||||
NTSTATUS SetTunerTone( IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucTone);
|
||||
NTSTATUS ConfigureTuner(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PBDATUNER_DEVICE_PARAMETER pNewConfiguration);
|
||||
NTSTATUS DiseqcCommand( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PDISEQC_COMMAND pCommand);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Control.cpp
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Device Control related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_CONTROL_H
|
||||
#define __SKYWALKER1_CONTROL_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
|
||||
/* gp8psk commands */
|
||||
|
||||
/* Twinhan Vendor requests */
|
||||
#define TH_COMMAND_IN 0xC0
|
||||
#define TH_COMMAND_OUT 0xC1
|
||||
|
||||
/* gp8psk commands */
|
||||
|
||||
#define GET_8PSK_CONFIG 0x80 /* in */
|
||||
#define SET_8PSK_CONFIG 0x81
|
||||
#define I2C_WRITE 0x83
|
||||
#define I2C_READ 0x84
|
||||
#define ARM_TRANSFER 0x85
|
||||
#define TUNE_8PSK 0x86
|
||||
#define GET_SIGNAL_STRENGTH 0x87 /* in */
|
||||
#define LOAD_BCM4500 0x88
|
||||
#define BOOT_8PSK 0x89 /* in */
|
||||
#define START_INTERSIL 0x8A /* in */
|
||||
#define SET_LNB_VOLTAGE 0x8B
|
||||
#define SET_22KHZ_TONE 0x8C
|
||||
#define SEND_DISEQC_COMMAND 0x8D
|
||||
#define SET_DVB_MODE 0x8E
|
||||
#define SET_DN_SWITCH 0x8F
|
||||
#define GET_SIGNAL_LOCK 0x90 /* in */
|
||||
#define GET_SERIAL_NUMBER 0x93 /* in */
|
||||
#define USE_EXTRA_VOLT 0x94
|
||||
#define CW3K_INIT 0x9d
|
||||
|
||||
/* PSK_configuration bits */
|
||||
#define bm8pskStarted 0x01
|
||||
#define bm8pskFW_Loaded 0x02
|
||||
#define bmIntersilOn 0x04
|
||||
#define bmDVBmode 0x08
|
||||
#define bm22kHz 0x10
|
||||
#define bmSEL18V 0x20
|
||||
#define bmDCtuned 0x40
|
||||
#define bmArmed 0x80
|
||||
|
||||
/* Satellite modulation modes */
|
||||
#define ADV_MOD_DVB_QPSK 0 /* DVB-S QPSK */
|
||||
#define ADV_MOD_TURBO_QPSK 1 /* Turbo QPSK */
|
||||
#define ADV_MOD_TURBO_8PSK 2 /* Turbo 8PSK (also used for Trellis 8PSK) */
|
||||
#define ADV_MOD_TURBO_16QAM 3 /* Turbo 16QAM (also used for Trellis 8PSK) */
|
||||
|
||||
#define ADV_MOD_DCII_C_QPSK 4 /* Digicipher II Combo */
|
||||
#define ADV_MOD_DCII_I_QPSK 5 /* Digicipher II I-stream */
|
||||
#define ADV_MOD_DCII_Q_QPSK 6 /* Digicipher II Q-stream */
|
||||
#define ADV_MOD_DCII_C_OQPSK 7 /* Digicipher II offset QPSK */
|
||||
#define ADV_MOD_DSS_QPSK 8 /* DSS (DIRECTV) QPSK */
|
||||
#define ADV_MOD_DVB_BPSK 9 /* DVB-S BPSK */
|
||||
|
||||
#define GET_USB_SPEED 0x07
|
||||
#define USB_SPEED_LOW 0
|
||||
#define USB_SPEED_FULL 1
|
||||
#define USB_SPEED_HIGH 2
|
||||
|
||||
#define RESET_FX2 0x13
|
||||
|
||||
#define FW_VERSION_READ 0x0B
|
||||
#define VENDOR_STRING_READ 0x0C
|
||||
#define PRODUCT_STRING_READ 0x0D
|
||||
#define FW_BCD_VERSION_READ 0x14
|
||||
|
||||
#define SEC_VOLTAGE_13 0
|
||||
#define SEC_VOLTAGE_18 1
|
||||
|
||||
#define SEC_TONE_ON 0
|
||||
#define SEC_TONE_OFF 1
|
||||
|
||||
#define SWITCH_ON_TUNER 1
|
||||
#define SWITCH_OFF_TUNER 0
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
NTSTATUS GetSignalStatus( IN PKSDEVICE pKSDeviceObject,
|
||||
OUT PBOOLEAN pbSignalLockStatus
|
||||
);
|
||||
NTSTATUS ReadTunerSignalStrength( IN PKSDEVICE pKSDeviceObject,
|
||||
OUT PULONG pulSigStrength
|
||||
);
|
||||
NTSTATUS SetLnbVoltage(IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucVoltage);
|
||||
NTSTATUS TuneDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PBDATUNER_DEVICE_PARAMETER pDeviceParameter);
|
||||
NTSTATUS SetupTunerPower( IN PKSDEVICE pKSDeviceObject,
|
||||
IN BOOLEAN bOnOff);
|
||||
NTSTATUS SetStreamingControl( IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucOnOff);
|
||||
NTSTATUS SetTunerTone( IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucTone);
|
||||
NTSTATUS ConfigureTuner(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PBDATUNER_DEVICE_PARAMETER pNewConfiguration);
|
||||
NTSTATUS DiseqcCommand( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PDISEQC_COMMAND pCommand);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_CONTROL_H*/
|
||||
|
|
@ -1,187 +1,187 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Device.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Main Skywalker Device level Implementation
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SKYWALKER1_TUNER_DEVICE_H
|
||||
#define SKYWALKER1_TUNER_DEVICE_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1USB.h"
|
||||
#include "SkyWalker1Extended.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The SkyWalker1 Device class.
|
||||
class CSkyWalker1Device
|
||||
{
|
||||
public:
|
||||
|
||||
//Device Initialization and Dispatch Related definitions
|
||||
NTSTATUS Create(IN PKSDEVICE pKSDeviceObject);
|
||||
NTSTATUS Start(
|
||||
IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIrp,
|
||||
IN PCM_RESOURCE_LIST pResourceList OPTIONAL,
|
||||
IN PCM_RESOURCE_LIST pTranslatedResourceList OPTIONAL
|
||||
);
|
||||
|
||||
NTSTATUS Stop( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
NTSTATUS Close( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SetPower(
|
||||
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.
|
||||
);
|
||||
|
||||
NTSTATUS InitializeTuner( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
// Device access related Function definitions
|
||||
// An instance of the filter uses these functions
|
||||
// to manage resources on the device.
|
||||
|
||||
NTSTATUS Acquire(IN PBDATUNER_DEVICE_PARAMETER pNewResource,
|
||||
OUT PULONG pulAcquiredResourceID);
|
||||
|
||||
NTSTATUS Update( IN PBDATUNER_DEVICE_PARAMETER pNewResource,
|
||||
IN ULONG ulResourceID);
|
||||
|
||||
NTSTATUS SendDiseqcCommand(
|
||||
IN PDISEQC_COMMAND pDiseqcCommand,
|
||||
IN ULONG ulResourceID
|
||||
);
|
||||
|
||||
NTSTATUS Release(IN ULONG ulResourceID);
|
||||
|
||||
NTSTATUS GetStatus(PBDATUNER_DEVICE_STATUS pDeviceStatus);
|
||||
|
||||
//DMA Adapter related Functions
|
||||
NTSTATUS InitializeAdapterStream(IN PKSDEVICE pKSDeviceObject);
|
||||
|
||||
//Stream Capture Related Fuctions
|
||||
NTSTATUS SetupCaptureSink (
|
||||
IN ICaptureSink * pCapturePin,
|
||||
IN PBDA_TRANSPORT_INFO TransportInfo
|
||||
);
|
||||
void RemoveCaptureSink ();
|
||||
|
||||
NTSTATUS StartStream ();
|
||||
NTSTATUS PauseStream (IN BOOLEAN Pausing);
|
||||
NTSTATUS StopStream ();
|
||||
NTSTATUS ReadStream(IN ULONG ulStreamIndex);
|
||||
void ProcessStream(IN ULONG ulStreamIndex);
|
||||
|
||||
BOOLEAN TimeToReadSignalStatus(void);
|
||||
|
||||
PKSDEVICE m_pKSDevice;
|
||||
|
||||
//USB Related definitions
|
||||
USB_DEVICE_DESCRIPTOR USBDeviceDescriptor;
|
||||
USBD_PIPE_INFORMATION ReadPipe;
|
||||
USBD_PIPE_INFORMATION WritePipe;
|
||||
USBSTATE UsbDeviceState;
|
||||
USBSTATE PreviousUsbDeviceState;
|
||||
//Pending I/O queue state
|
||||
QUEUE_STATE QueueState;
|
||||
|
||||
//obtain and hold this lock while changing the device state,
|
||||
//the queue state and while processing the queue.
|
||||
KSPIN_LOCK DeviceStateLock;
|
||||
//Current Usb Irp
|
||||
PIRP pUsbStreamIrp[PACKET_PER_FRAME * NUMBER_OF_FRAMES];
|
||||
//Device Stop Event
|
||||
KEVENT EvDeviceStopOk;
|
||||
//Device Remove Event
|
||||
KEVENT EvDeviceRemoveOk;
|
||||
//Outstanding IO Count for the Driver
|
||||
ULONG ulOutStandingIoCount;
|
||||
//Outstanding IO Count Lock
|
||||
KSPIN_LOCK kIoCountLock;
|
||||
|
||||
PDMA_ADAPTER m_pDMAAdapter;
|
||||
|
||||
ULONG m_SampleSize;
|
||||
|
||||
//Temporary Bytes Read Counter
|
||||
ULONG m_NumberOfBytesRead[NUMBER_OF_FRAMES];
|
||||
|
||||
PUCHAR GetSynthBuffer(ULONG ulStreamIndex)
|
||||
{
|
||||
return m_SynthesisBuffer[ulStreamIndex];
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
ULONG m_ulDeviceInstance;
|
||||
BDATUNER_DEVICE_PARAMETER m_CurResource;
|
||||
BDATUNER_DEVICE_STATUS m_TunerStatus;
|
||||
ULONG m_ulCurResourceID;
|
||||
ULONG m_ulcResourceUsers;
|
||||
LARGE_INTEGER m_PreviousStatusReadTime;
|
||||
|
||||
//The synthesis buffer. This is a private buffer we use to store the
|
||||
//references of the Streaming Data.It is used for the Reading data
|
||||
//from the device and also Copying Data to the Stream Buffer sent
|
||||
//by the application
|
||||
PUCHAR m_SynthesisBuffer[NUMBER_OF_FRAMES];
|
||||
|
||||
//Key information regarding the frames we generate.
|
||||
LONGLONG m_TimePerFrame;
|
||||
ULONG m_PacketSize;
|
||||
ULONG m_PacketsPerSample;
|
||||
|
||||
//The current state of the Device
|
||||
HARDWARE_STATE m_HardwareState;
|
||||
|
||||
//The pause / stop hardware flag and event.
|
||||
BOOLEAN m_StopHardware;
|
||||
KEVENT m_HardwareEvent;
|
||||
|
||||
//Number of pins with resources acquired. This is used as a locking
|
||||
//mechanism for resource acquisition on the device.
|
||||
LONG m_PinsWithResources;
|
||||
|
||||
//The capture sink. When we complete stream reading, we
|
||||
//notify the capture sink.
|
||||
ICaptureSink *m_CaptureSink;
|
||||
|
||||
//The video info header we're basing hardware settings on. The pin
|
||||
//provides this to us when acquiring resources and must guarantee its
|
||||
//stability until resources are released.
|
||||
PBDA_TRANSPORT_INFO m_TransportInfo;
|
||||
};
|
||||
|
||||
/* 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 */
|
||||
|
||||
#endif /*SKYWALKER1_TUNER_DEVICE_H*/
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Device.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Main Skywalker Device level Implementation
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SKYWALKER1_TUNER_DEVICE_H
|
||||
#define SKYWALKER1_TUNER_DEVICE_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1USB.h"
|
||||
#include "SkyWalker1Extended.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The SkyWalker1 Device class.
|
||||
class CSkyWalker1Device
|
||||
{
|
||||
public:
|
||||
|
||||
//Device Initialization and Dispatch Related definitions
|
||||
NTSTATUS Create(IN PKSDEVICE pKSDeviceObject);
|
||||
NTSTATUS Start(
|
||||
IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIrp,
|
||||
IN PCM_RESOURCE_LIST pResourceList OPTIONAL,
|
||||
IN PCM_RESOURCE_LIST pTranslatedResourceList OPTIONAL
|
||||
);
|
||||
|
||||
NTSTATUS Stop( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
NTSTATUS Close( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SetPower(
|
||||
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.
|
||||
);
|
||||
|
||||
NTSTATUS InitializeTuner( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
// Device access related Function definitions
|
||||
// An instance of the filter uses these functions
|
||||
// to manage resources on the device.
|
||||
|
||||
NTSTATUS Acquire(IN PBDATUNER_DEVICE_PARAMETER pNewResource,
|
||||
OUT PULONG pulAcquiredResourceID);
|
||||
|
||||
NTSTATUS Update( IN PBDATUNER_DEVICE_PARAMETER pNewResource,
|
||||
IN ULONG ulResourceID);
|
||||
|
||||
NTSTATUS SendDiseqcCommand(
|
||||
IN PDISEQC_COMMAND pDiseqcCommand,
|
||||
IN ULONG ulResourceID
|
||||
);
|
||||
|
||||
NTSTATUS Release(IN ULONG ulResourceID);
|
||||
|
||||
NTSTATUS GetStatus(PBDATUNER_DEVICE_STATUS pDeviceStatus);
|
||||
|
||||
//DMA Adapter related Functions
|
||||
NTSTATUS InitializeAdapterStream(IN PKSDEVICE pKSDeviceObject);
|
||||
|
||||
//Stream Capture Related Fuctions
|
||||
NTSTATUS SetupCaptureSink (
|
||||
IN ICaptureSink * pCapturePin,
|
||||
IN PBDA_TRANSPORT_INFO TransportInfo
|
||||
);
|
||||
void RemoveCaptureSink ();
|
||||
|
||||
NTSTATUS StartStream ();
|
||||
NTSTATUS PauseStream (IN BOOLEAN Pausing);
|
||||
NTSTATUS StopStream ();
|
||||
NTSTATUS ReadStream(IN ULONG ulStreamIndex);
|
||||
void ProcessStream(IN ULONG ulStreamIndex);
|
||||
|
||||
BOOLEAN TimeToReadSignalStatus(void);
|
||||
|
||||
PKSDEVICE m_pKSDevice;
|
||||
|
||||
//USB Related definitions
|
||||
USB_DEVICE_DESCRIPTOR USBDeviceDescriptor;
|
||||
USBD_PIPE_INFORMATION ReadPipe;
|
||||
USBD_PIPE_INFORMATION WritePipe;
|
||||
USBSTATE UsbDeviceState;
|
||||
USBSTATE PreviousUsbDeviceState;
|
||||
//Pending I/O queue state
|
||||
QUEUE_STATE QueueState;
|
||||
|
||||
//obtain and hold this lock while changing the device state,
|
||||
//the queue state and while processing the queue.
|
||||
KSPIN_LOCK DeviceStateLock;
|
||||
//Current Usb Irp
|
||||
PIRP pUsbStreamIrp[PACKET_PER_FRAME * NUMBER_OF_FRAMES];
|
||||
//Device Stop Event
|
||||
KEVENT EvDeviceStopOk;
|
||||
//Device Remove Event
|
||||
KEVENT EvDeviceRemoveOk;
|
||||
//Outstanding IO Count for the Driver
|
||||
ULONG ulOutStandingIoCount;
|
||||
//Outstanding IO Count Lock
|
||||
KSPIN_LOCK kIoCountLock;
|
||||
|
||||
PDMA_ADAPTER m_pDMAAdapter;
|
||||
|
||||
ULONG m_SampleSize;
|
||||
|
||||
//Temporary Bytes Read Counter
|
||||
ULONG m_NumberOfBytesRead[NUMBER_OF_FRAMES];
|
||||
|
||||
PUCHAR GetSynthBuffer(ULONG ulStreamIndex)
|
||||
{
|
||||
return m_SynthesisBuffer[ulStreamIndex];
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
ULONG m_ulDeviceInstance;
|
||||
BDATUNER_DEVICE_PARAMETER m_CurResource;
|
||||
BDATUNER_DEVICE_STATUS m_TunerStatus;
|
||||
ULONG m_ulCurResourceID;
|
||||
ULONG m_ulcResourceUsers;
|
||||
LARGE_INTEGER m_PreviousStatusReadTime;
|
||||
|
||||
//The synthesis buffer. This is a private buffer we use to store the
|
||||
//references of the Streaming Data.It is used for the Reading data
|
||||
//from the device and also Copying Data to the Stream Buffer sent
|
||||
//by the application
|
||||
PUCHAR m_SynthesisBuffer[NUMBER_OF_FRAMES];
|
||||
|
||||
//Key information regarding the frames we generate.
|
||||
LONGLONG m_TimePerFrame;
|
||||
ULONG m_PacketSize;
|
||||
ULONG m_PacketsPerSample;
|
||||
|
||||
//The current state of the Device
|
||||
HARDWARE_STATE m_HardwareState;
|
||||
|
||||
//The pause / stop hardware flag and event.
|
||||
BOOLEAN m_StopHardware;
|
||||
KEVENT m_HardwareEvent;
|
||||
|
||||
//Number of pins with resources acquired. This is used as a locking
|
||||
//mechanism for resource acquisition on the device.
|
||||
LONG m_PinsWithResources;
|
||||
|
||||
//The capture sink. When we complete stream reading, we
|
||||
//notify the capture sink.
|
||||
ICaptureSink *m_CaptureSink;
|
||||
|
||||
//The video info header we're basing hardware settings on. The pin
|
||||
//provides this to us when acquiring resources and must guarantee its
|
||||
//stability until resources are released.
|
||||
PBDA_TRANSPORT_INFO m_TransportInfo;
|
||||
};
|
||||
|
||||
/* 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 */
|
||||
|
||||
#endif /*SKYWALKER1_TUNER_DEVICE_H*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,109 +1,109 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1AntennaPin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Extended BDA Definitions
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_EXTENDED_H
|
||||
#define __SKYWALKER1_EXTENDED_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#if !defined(_KSMEDIA_)
|
||||
#error KSMEDIA.H must be included before BDAMEDIA.H
|
||||
#endif // !defined(_KSMEDIA_)
|
||||
|
||||
#if !defined(_BDATYPES_)
|
||||
#error BDATYPES.H must be included before BDAMEDIA.H
|
||||
#endif // !defined(_BDATYPES_)
|
||||
|
||||
#if !defined(_BDAMEDIA_)
|
||||
#define _BDAMEDIA_
|
||||
#endif // !defined(_BDAMEDIA_)
|
||||
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
|
||||
#define MAX_DISEQC_COMMAND_LENGTH 6
|
||||
|
||||
/* Extended Property*/
|
||||
|
||||
//Used to extend the feature of the BDA
|
||||
//{0B5221EB-F4C4-4976-B959-EF74427464D9}
|
||||
#define STATIC_KSPROPSETID_BdaExtendedProperty \
|
||||
0x0B5221EB, 0xF4C4, 0x4976, 0xB9, 0x59, 0xEF, 0x74, 0x42, 0x74, 0x64, 0xD9
|
||||
DEFINE_GUIDSTRUCT("0B5221EB-F4C4-4976-B959-EF74427464D9", KSPROPSETID_BdaExtendedProperty);
|
||||
#define KSPROPSETID_BdaExtendedProperty DEFINE_GUIDNAMED(KSPROPSETID_BdaExtendedProperty)
|
||||
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
//Extended Property List
|
||||
typedef enum __KSPROPERTY_EXTENDED
|
||||
{
|
||||
/* DiSEqC Command */
|
||||
//Used to send the Digital Sattelite Equipment Control (DiSEqC)
|
||||
//Commands by application
|
||||
KSPROPERTY_BDA_DISEQC = 0, //Extension Property 1
|
||||
|
||||
//Add New Extended Commands Here
|
||||
|
||||
}KSPROPERTY_EXTENDED;
|
||||
|
||||
//Enumeration can be used during Simple Tone Burst Command
|
||||
typedef enum enSimpleToneBurst
|
||||
{
|
||||
SEC_MINI_A,
|
||||
SEC_MINI_B
|
||||
}SIMPLE_TONE_BURST;
|
||||
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//DiSEqC Command related Structure definitions
|
||||
typedef struct __DISEQC_COMMAND
|
||||
{
|
||||
UCHAR ucMessage[MAX_DISEQC_COMMAND_LENGTH]; /*
|
||||
Byte - 0 : Framing,
|
||||
Byte - 1 : Address,
|
||||
Byte - 2 : Command,
|
||||
Byte - 3 : Data[0],
|
||||
Byte - 4 : Data[1],
|
||||
Byte - 5 : Data[2]
|
||||
*/
|
||||
UCHAR ucMessageLength;/* The Valid values for DiSEqC Command are 3...6
|
||||
If this value is 1 then the Byte 0 is taken as Simple "Tone Burst" Control
|
||||
Command */
|
||||
|
||||
}DISEQC_COMMAND,*PDISEQC_COMMAND;
|
||||
|
||||
//Property that will be used to send the Diseqc command by the application
|
||||
#define DEFINE_KSPROPERTY_ITEM_BDA_DISEQC(GetHandler, SetHandler)\
|
||||
DEFINE_KSPROPERTY_ITEM(\
|
||||
KSPROPERTY_BDA_DISEQC,\
|
||||
(GetHandler),\
|
||||
sizeof(KSP_NODE),\
|
||||
sizeof(DISEQC_COMMAND),\
|
||||
(SetHandler),\
|
||||
NULL, 0, NULL, NULL, 0)
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1AntennaPin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Extended BDA Definitions
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_EXTENDED_H
|
||||
#define __SKYWALKER1_EXTENDED_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#if !defined(_KSMEDIA_)
|
||||
#error KSMEDIA.H must be included before BDAMEDIA.H
|
||||
#endif // !defined(_KSMEDIA_)
|
||||
|
||||
#if !defined(_BDATYPES_)
|
||||
#error BDATYPES.H must be included before BDAMEDIA.H
|
||||
#endif // !defined(_BDATYPES_)
|
||||
|
||||
#if !defined(_BDAMEDIA_)
|
||||
#define _BDAMEDIA_
|
||||
#endif // !defined(_BDAMEDIA_)
|
||||
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
|
||||
#define MAX_DISEQC_COMMAND_LENGTH 6
|
||||
|
||||
/* Extended Property*/
|
||||
|
||||
//Used to extend the feature of the BDA
|
||||
//{0B5221EB-F4C4-4976-B959-EF74427464D9}
|
||||
#define STATIC_KSPROPSETID_BdaExtendedProperty \
|
||||
0x0B5221EB, 0xF4C4, 0x4976, 0xB9, 0x59, 0xEF, 0x74, 0x42, 0x74, 0x64, 0xD9
|
||||
DEFINE_GUIDSTRUCT("0B5221EB-F4C4-4976-B959-EF74427464D9", KSPROPSETID_BdaExtendedProperty);
|
||||
#define KSPROPSETID_BdaExtendedProperty DEFINE_GUIDNAMED(KSPROPSETID_BdaExtendedProperty)
|
||||
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
//Extended Property List
|
||||
typedef enum __KSPROPERTY_EXTENDED
|
||||
{
|
||||
/* DiSEqC Command */
|
||||
//Used to send the Digital Sattelite Equipment Control (DiSEqC)
|
||||
//Commands by application
|
||||
KSPROPERTY_BDA_DISEQC = 0, //Extension Property 1
|
||||
|
||||
//Add New Extended Commands Here
|
||||
|
||||
}KSPROPERTY_EXTENDED;
|
||||
|
||||
//Enumeration can be used during Simple Tone Burst Command
|
||||
typedef enum enSimpleToneBurst
|
||||
{
|
||||
SEC_MINI_A,
|
||||
SEC_MINI_B
|
||||
}SIMPLE_TONE_BURST;
|
||||
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//DiSEqC Command related Structure definitions
|
||||
typedef struct __DISEQC_COMMAND
|
||||
{
|
||||
UCHAR ucMessage[MAX_DISEQC_COMMAND_LENGTH]; /*
|
||||
Byte - 0 : Framing,
|
||||
Byte - 1 : Address,
|
||||
Byte - 2 : Command,
|
||||
Byte - 3 : Data[0],
|
||||
Byte - 4 : Data[1],
|
||||
Byte - 5 : Data[2]
|
||||
*/
|
||||
UCHAR ucMessageLength;/* The Valid values for DiSEqC Command are 3...6
|
||||
If this value is 1 then the Byte 0 is taken as Simple "Tone Burst" Control
|
||||
Command */
|
||||
|
||||
}DISEQC_COMMAND,*PDISEQC_COMMAND;
|
||||
|
||||
//Property that will be used to send the Diseqc command by the application
|
||||
#define DEFINE_KSPROPERTY_ITEM_BDA_DISEQC(GetHandler, SetHandler)\
|
||||
DEFINE_KSPROPERTY_ITEM(\
|
||||
KSPROPERTY_BDA_DISEQC,\
|
||||
(GetHandler),\
|
||||
sizeof(KSP_NODE),\
|
||||
sizeof(DISEQC_COMMAND),\
|
||||
(SetHandler),\
|
||||
NULL, 0, NULL, NULL, 0)
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_EXTENDED_H*/
|
||||
|
|
@ -1,69 +1,69 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Main.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Entry point for the Driver
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_MAIN_H
|
||||
#define __SKYWALKER1_MAIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include <winerror.h>
|
||||
#include <unknown.h>
|
||||
#include <ks.h> //Kernel Streaming Driver
|
||||
#include <ksmedia.h>
|
||||
#include <bdatypes.h>
|
||||
#include <bdamedia.h>
|
||||
#include <atsmedia.h>
|
||||
#include <bdasup.h>
|
||||
|
||||
#include <kcom.h>
|
||||
#include <ksdebug.h>
|
||||
#include "SkyWalker1AntennaPin.h"
|
||||
#include "SkyWalker1CaptureFilter.h"
|
||||
#include "SkyWalker1CapturePin.h"
|
||||
#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1Control.h"
|
||||
#include "SkyWalker1Device.h"
|
||||
#include "SkyWalker1TransportPin.h"
|
||||
#include "SkyWalker1TunerFilter.h"
|
||||
#include "SkyWalker1TunerPin.h"
|
||||
#include "SkyWalker1Extended.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <wdm.h> //For the Mutex
|
||||
#include <wchar.h> //For the WCHAR and swprintf
|
||||
#include <stdio.h> //For sprintf() function
|
||||
|
||||
#include "SkyWalker1PnP.h" //Header for the PnP related definitions
|
||||
#include "SkyWalker1USB.h"
|
||||
#include "SkyWalker1Utility.h"
|
||||
|
||||
}
|
||||
|
||||
/* 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 */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Main.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Entry point for the Driver
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_MAIN_H
|
||||
#define __SKYWALKER1_MAIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include <winerror.h>
|
||||
#include <unknown.h>
|
||||
#include <ks.h> //Kernel Streaming Driver
|
||||
#include <ksmedia.h>
|
||||
#include <bdatypes.h>
|
||||
#include <bdamedia.h>
|
||||
#include <atsmedia.h>
|
||||
#include <bdasup.h>
|
||||
|
||||
#include <kcom.h>
|
||||
#include <ksdebug.h>
|
||||
#include "SkyWalker1AntennaPin.h"
|
||||
#include "SkyWalker1CaptureFilter.h"
|
||||
#include "SkyWalker1CapturePin.h"
|
||||
#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1Control.h"
|
||||
#include "SkyWalker1Device.h"
|
||||
#include "SkyWalker1TransportPin.h"
|
||||
#include "SkyWalker1TunerFilter.h"
|
||||
#include "SkyWalker1TunerPin.h"
|
||||
#include "SkyWalker1Extended.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <wdm.h> //For the Mutex
|
||||
#include <wchar.h> //For the WCHAR and swprintf
|
||||
#include <stdio.h> //For sprintf() function
|
||||
|
||||
#include "SkyWalker1PnP.h" //Header for the PnP related definitions
|
||||
#include "SkyWalker1USB.h"
|
||||
#include "SkyWalker1Utility.h"
|
||||
|
||||
}
|
||||
|
||||
/* 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 */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_MAIN_H*/
|
||||
|
|
@ -1,56 +1,56 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1PnP.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : PnP IRP Message Handler
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef __SKYWALKER1_PNP_H
|
||||
#define __SKYWALKER1_PNP_H
|
||||
|
||||
/* Include the Library and Other 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 */
|
||||
NTSTATUS SkyWalker1AddDevice(IN PKSDEVICE pKSDeviceObject);
|
||||
VOID SkyWalker1Remove( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SkyWalker1Start(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PCM_RESOURCE_LIST pResourceList,
|
||||
IN PCM_RESOURCE_LIST pCIResourceListTranslated);
|
||||
VOID SkyWalker1Stop(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SkyWalker1QueryStop( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
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.
|
||||
);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif // __SKYWALKER1_PNP_H
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1PnP.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : PnP IRP Message Handler
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef __SKYWALKER1_PNP_H
|
||||
#define __SKYWALKER1_PNP_H
|
||||
|
||||
/* Include the Library and Other 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 */
|
||||
NTSTATUS SkyWalker1AddDevice(IN PKSDEVICE pKSDeviceObject);
|
||||
VOID SkyWalker1Remove( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SkyWalker1Start(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PCM_RESOURCE_LIST pResourceList,
|
||||
IN PCM_RESOURCE_LIST pCIResourceListTranslated);
|
||||
VOID SkyWalker1Stop(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SkyWalker1QueryStop( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
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.
|
||||
);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif // __SKYWALKER1_PNP_H
|
||||
|
|
|
|||
|
|
@ -1,84 +1,84 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TransportPin.h
|
||||
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
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_TRANSPORT_PIN_H
|
||||
#define __SKYWALKER1_TRANSPORT_PIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
//#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1TunerPin.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The Trasport Pin class.
|
||||
class CTransportPin : public CTunerPin
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
//Define a data intersection handler function for the
|
||||
//pin (KSPIN_DESCRIPTOR_EX structure).
|
||||
//Network provider and AVStream use this function
|
||||
//to connect the output pin with a downstream filter.
|
||||
static NTSTATUS IntersectDataFormat(
|
||||
IN PVOID pContext,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSP_PIN Pin,
|
||||
IN PKSDATARANGE DataRange,
|
||||
IN PKSDATARANGE MatchingDataRange,
|
||||
IN ULONG DataBufferSize,
|
||||
OUT PVOID Data OPTIONAL,
|
||||
OUT PULONG DataSize
|
||||
);
|
||||
|
||||
static NTSTATUS GetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
static NTSTATUS SetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
//Function to send the Extended BDA Commands to the Tuner
|
||||
static NTSTATUS SetExtendedProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TransportPin.h
|
||||
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
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_TRANSPORT_PIN_H
|
||||
#define __SKYWALKER1_TRANSPORT_PIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
//#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1TunerPin.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The Trasport Pin class.
|
||||
class CTransportPin : public CTunerPin
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
//Define a data intersection handler function for the
|
||||
//pin (KSPIN_DESCRIPTOR_EX structure).
|
||||
//Network provider and AVStream use this function
|
||||
//to connect the output pin with a downstream filter.
|
||||
static NTSTATUS IntersectDataFormat(
|
||||
IN PVOID pContext,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSP_PIN Pin,
|
||||
IN PKSDATARANGE DataRange,
|
||||
IN PKSDATARANGE MatchingDataRange,
|
||||
IN ULONG DataBufferSize,
|
||||
OUT PVOID Data OPTIONAL,
|
||||
OUT PULONG DataSize
|
||||
);
|
||||
|
||||
static NTSTATUS GetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
static NTSTATUS SetDigitalDemodProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
//Function to send the Extended BDA Commands to the Tuner
|
||||
static NTSTATUS SetExtendedProperty(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_TRANSPORT_PIN_H*/
|
||||
|
|
@ -1,140 +1,140 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TunerFilter.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Tuner Filter Class Definition
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SKYWALKER1_TUNER_FILTER_H
|
||||
#define SKYWALKER1_TUNER_FILTER_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1Device.h"
|
||||
#include "SkyWalker1Extended.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The Tuner Filter class.
|
||||
class CTunerFilter
|
||||
{
|
||||
public:
|
||||
|
||||
//Functions to Create and Close Filter
|
||||
static NTSTATUS Create( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
static NTSTATUS FilterClose( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
//KSMETHODSETID_BdaChangeSync pKSFilter change sync methods
|
||||
static NTSTATUS StartChanges( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
static NTSTATUS CheckChanges( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
static NTSTATUS CommitChanges( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
static NTSTATUS GetChangeState( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OUT PULONG pulChangeState);
|
||||
|
||||
|
||||
//KSMETHODSETID_BdaDeviceConfiguration Method to modify filter topology.
|
||||
static NTSTATUS CreateTopology( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
|
||||
//pKSFilter Implementation Methods
|
||||
(class CSkyWalker1Device *) GetDevice()
|
||||
{
|
||||
return m_pDevice;
|
||||
};
|
||||
|
||||
NTSTATUS SetDeviceState(KSSTATE NewKsState)
|
||||
{
|
||||
m_KsState = NewKsState;
|
||||
return STATUS_SUCCESS;
|
||||
};
|
||||
|
||||
|
||||
//Tuner Node Properties
|
||||
NTSTATUS GetTunerProperty(OUT PBDATUNER_DEVICE_PARAMETER pTunerParameter);
|
||||
NTSTATUS SetFrequency(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetMultiplier(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetBandwidth(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetPolarity(IN Polarisation NewPolarity);
|
||||
NTSTATUS SetRange(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetTransponder(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetLowLOFrequency(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetHighLOFrequency(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetSwitchFrequency(IN ULONG ulBdaParameter);
|
||||
|
||||
//Demodulator Node Properties
|
||||
NTSTATUS GetDemodProperty(OUT PBDATUNER_DEVICE_PARAMETER pDemodParameter);
|
||||
NTSTATUS SetModulatorType(IN ModulationType NewModulatorType);
|
||||
NTSTATUS SetInnerFecType(IN ULONG ulNewInnerFecType);
|
||||
NTSTATUS SetInnerFecRate(IN BinaryConvolutionCodeRate NewFecRate);
|
||||
NTSTATUS SetOuterFecType(IN ULONG ulNewOuterFecType);
|
||||
NTSTATUS SetOuterFecRate(IN BinaryConvolutionCodeRate NewFecRate);
|
||||
NTSTATUS SetSymbolRate(IN ULONG ulNewSymbolRate);
|
||||
NTSTATUS SetSpectralInversion(IN SpectralInversion SpecInv);
|
||||
NTSTATUS SetGuardInterval(IN GuardInterval GuardInt);
|
||||
NTSTATUS SetTransmissionMode(IN TransmissionMode TransMode);
|
||||
|
||||
//Extended Property
|
||||
NTSTATUS SendDiseqcCommand(IN PDISEQC_COMMAND pDiseqcCommand);
|
||||
|
||||
//Function to retrive the Device Status.
|
||||
NTSTATUS GetStatus(PBDATUNER_DEVICE_STATUS pDeviceStatus);
|
||||
|
||||
//Functions to get and release device access
|
||||
NTSTATUS AcquireResources();
|
||||
NTSTATUS ReleaseResources();
|
||||
|
||||
|
||||
private:
|
||||
class CSkyWalker1Device * m_pDevice;
|
||||
|
||||
//Filter Resources
|
||||
KSSTATE m_KsState;
|
||||
BDA_CHANGE_STATE m_BdaChangeState;
|
||||
BDATUNER_DEVICE_PARAMETER m_CurResource;
|
||||
BDATUNER_DEVICE_PARAMETER m_NewResource;
|
||||
ULONG m_ulResourceID;
|
||||
BOOLEAN m_fResourceAcquired;
|
||||
CTunerFilter();
|
||||
~CTunerFilter();
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TunerFilter.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : Tuner Filter Class Definition
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SKYWALKER1_TUNER_FILTER_H
|
||||
#define SKYWALKER1_TUNER_FILTER_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1Device.h"
|
||||
#include "SkyWalker1Extended.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
//The Tuner Filter class.
|
||||
class CTunerFilter
|
||||
{
|
||||
public:
|
||||
|
||||
//Functions to Create and Close Filter
|
||||
static NTSTATUS Create( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
static NTSTATUS FilterClose( IN OUT PKSFILTER pKSFilter,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
//KSMETHODSETID_BdaChangeSync pKSFilter change sync methods
|
||||
static NTSTATUS StartChanges( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
static NTSTATUS CheckChanges( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
static NTSTATUS CommitChanges( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
static NTSTATUS GetChangeState( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OUT PULONG pulChangeState);
|
||||
|
||||
|
||||
//KSMETHODSETID_BdaDeviceConfiguration Method to modify filter topology.
|
||||
static NTSTATUS CreateTopology( IN PIRP pIoRequestPacket,
|
||||
IN PKSMETHOD pKSMethod,
|
||||
OPTIONAL PVOID pvIgnored);
|
||||
|
||||
|
||||
//pKSFilter Implementation Methods
|
||||
(class CSkyWalker1Device *) GetDevice()
|
||||
{
|
||||
return m_pDevice;
|
||||
};
|
||||
|
||||
NTSTATUS SetDeviceState(KSSTATE NewKsState)
|
||||
{
|
||||
m_KsState = NewKsState;
|
||||
return STATUS_SUCCESS;
|
||||
};
|
||||
|
||||
|
||||
//Tuner Node Properties
|
||||
NTSTATUS GetTunerProperty(OUT PBDATUNER_DEVICE_PARAMETER pTunerParameter);
|
||||
NTSTATUS SetFrequency(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetMultiplier(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetBandwidth(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetPolarity(IN Polarisation NewPolarity);
|
||||
NTSTATUS SetRange(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetTransponder(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetLowLOFrequency(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetHighLOFrequency(IN ULONG ulBdaParameter);
|
||||
NTSTATUS SetSwitchFrequency(IN ULONG ulBdaParameter);
|
||||
|
||||
//Demodulator Node Properties
|
||||
NTSTATUS GetDemodProperty(OUT PBDATUNER_DEVICE_PARAMETER pDemodParameter);
|
||||
NTSTATUS SetModulatorType(IN ModulationType NewModulatorType);
|
||||
NTSTATUS SetInnerFecType(IN ULONG ulNewInnerFecType);
|
||||
NTSTATUS SetInnerFecRate(IN BinaryConvolutionCodeRate NewFecRate);
|
||||
NTSTATUS SetOuterFecType(IN ULONG ulNewOuterFecType);
|
||||
NTSTATUS SetOuterFecRate(IN BinaryConvolutionCodeRate NewFecRate);
|
||||
NTSTATUS SetSymbolRate(IN ULONG ulNewSymbolRate);
|
||||
NTSTATUS SetSpectralInversion(IN SpectralInversion SpecInv);
|
||||
NTSTATUS SetGuardInterval(IN GuardInterval GuardInt);
|
||||
NTSTATUS SetTransmissionMode(IN TransmissionMode TransMode);
|
||||
|
||||
//Extended Property
|
||||
NTSTATUS SendDiseqcCommand(IN PDISEQC_COMMAND pDiseqcCommand);
|
||||
|
||||
//Function to retrive the Device Status.
|
||||
NTSTATUS GetStatus(PBDATUNER_DEVICE_STATUS pDeviceStatus);
|
||||
|
||||
//Functions to get and release device access
|
||||
NTSTATUS AcquireResources();
|
||||
NTSTATUS ReleaseResources();
|
||||
|
||||
|
||||
private:
|
||||
class CSkyWalker1Device * m_pDevice;
|
||||
|
||||
//Filter Resources
|
||||
KSSTATE m_KsState;
|
||||
BDA_CHANGE_STATE m_BdaChangeState;
|
||||
BDATUNER_DEVICE_PARAMETER m_CurResource;
|
||||
BDATUNER_DEVICE_PARAMETER m_NewResource;
|
||||
ULONG m_ulResourceID;
|
||||
BOOLEAN m_fResourceAcquired;
|
||||
CTunerFilter();
|
||||
~CTunerFilter();
|
||||
};
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*SKYWALKER1_TUNER_FILTER_H*/
|
||||
|
|
@ -1,82 +1,82 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TunerPin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Generic Tuner Pin related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_TUNER_PIN_H
|
||||
#define __SKYWALKER1_TUNER_PIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1TunerFilter.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
// The Tuner Pin class.
|
||||
class CTunerPin
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
//Creates the Pin
|
||||
static NTSTATUS PinCreate( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
);
|
||||
|
||||
//Closes the Opened Pin
|
||||
static NTSTATUS PinClose( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
);
|
||||
|
||||
//Member Function to get the Various Signal attributes
|
||||
static NTSTATUS GetSignalStatus(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
|
||||
(class CTunerFilter *) GetFilter(void)
|
||||
{
|
||||
return m_pFilter;
|
||||
};
|
||||
|
||||
void SetFilter(class CTunerFilter * pFilter)
|
||||
{
|
||||
m_pFilter = pFilter;
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
class CTunerFilter* m_pFilter;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1TunerPin.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds the Generic Tuner Pin related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_TUNER_PIN_H
|
||||
#define __SKYWALKER1_TUNER_PIN_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include "SkyWalker1CommonDef.h"
|
||||
#include "SkyWalker1TunerFilter.h"
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
|
||||
// The Tuner Pin class.
|
||||
class CTunerPin
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
//Creates the Pin
|
||||
static NTSTATUS PinCreate( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
);
|
||||
|
||||
//Closes the Opened Pin
|
||||
static NTSTATUS PinClose( IN OUT PKSPIN pKSPin,
|
||||
IN PIRP pIoRequestPacket
|
||||
);
|
||||
|
||||
//Member Function to get the Various Signal attributes
|
||||
static NTSTATUS GetSignalStatus(
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PKSPROPERTY pKSProperty,
|
||||
IN PULONG pulProperty
|
||||
);
|
||||
|
||||
|
||||
(class CTunerFilter *) GetFilter(void)
|
||||
{
|
||||
return m_pFilter;
|
||||
};
|
||||
|
||||
void SetFilter(class CTunerFilter * pFilter)
|
||||
{
|
||||
m_pFilter = pFilter;
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
class CTunerFilter* m_pFilter;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_TUNER_PIN_H*/
|
||||
|
|
@ -1,126 +1,126 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Usb.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds all the USB Device access related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_USB_H
|
||||
#define __SKYWALKER1_USB_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
extern "C"
|
||||
{
|
||||
//USB Related Headers
|
||||
#include <initguid.h>
|
||||
#pragma warning(disable:4200)
|
||||
#include <usbdi.h>
|
||||
#include <usbdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <usb100.h>
|
||||
#include "SkyWalker1Device.h"
|
||||
|
||||
}
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
#define MAX_BULK_PACKET_SIZE 8 * 512
|
||||
#define MAX_BULK_TRANSFER_SIZE (TRANSPORT_PACKET_COUNT * TRANSPORT_PACKET_SIZE) //Suppoting max Frame Size
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
typedef enum __USBSTATE {
|
||||
|
||||
NotStarted, // not started
|
||||
Stopped, // device stopped
|
||||
Working, // started and working
|
||||
PendingStop, // stop pending
|
||||
PendingRemove, // remove pending
|
||||
SurpriseRemoved, // removed by surprise
|
||||
Removed // removed
|
||||
|
||||
}USBSTATE;
|
||||
|
||||
typedef enum _QUEUE_STATE {
|
||||
|
||||
HoldRequests, // device is not started yet
|
||||
AllowRequests, // device is ready to process
|
||||
FailRequests // fail both existing and queued up requests
|
||||
|
||||
} QUEUE_STATE;
|
||||
|
||||
#define INITIALIZE_PNP_STATE(_Data_) \
|
||||
(_Data_)->UsbDeviceState = NotStarted;\
|
||||
(_Data_)->PreviousUsbDeviceState = NotStarted;
|
||||
|
||||
#define SET_NEW_PNP_STATE(_Data_, _state_) \
|
||||
(_Data_)->PreviousUsbDeviceState = (_Data_)->UsbDeviceState;\
|
||||
(_Data_)->UsbDeviceState = (_state_);
|
||||
|
||||
#define RESTORE_PREVIOUS_PNP_STATE(_Data_) \
|
||||
(_Data_)->UsbDeviceState = (_Data_)->PreviousUsbDeviceState;
|
||||
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
//BulkUsb Read Write Context
|
||||
typedef struct _BULKUSB_RW_CONTEXT {
|
||||
|
||||
PURB pUSBRequestBlock;
|
||||
PUCHAR pTransferBuffer;
|
||||
ULONG ulRemainingByteTransfer; // remaining to xfer
|
||||
ULONG ulCompletedByteTransfer; // cumulate xfer
|
||||
ULONG ulStreamIndex;
|
||||
class CSkyWalker1Device * pDevice;
|
||||
|
||||
} BULKUSB_RW_CONTEXT, * PBULKUSB_RW_CONTEXT;
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
//Usb Access functions
|
||||
NTSTATUS InitializeUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoReqestPacket);
|
||||
NTSTATUS DeconfigureUsbDevice(IN PKSDEVICE pKSDeviceObject);
|
||||
NTSTATUS StopUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS ReadWriteUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN ULONG ulStreamIndex,
|
||||
IN ULONG ulPacketIndex,
|
||||
IN PUCHAR pucTransferBuffer,
|
||||
IN ULONG ulTransferLength,
|
||||
IN BOOLEAN bRead);
|
||||
NTSTATUS ControlUsbDevice( IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucRequest,
|
||||
IN USHORT usValue,
|
||||
IN USHORT usIndex,
|
||||
IN PUCHAR pucTransferBuffer,
|
||||
IN ULONG ulTransferLength,
|
||||
IN BOOLEAN bRead);
|
||||
NTSTATUS RemoveUsbDevice( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SurpriseUsbDeviceRemoval(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS CancelRemoveUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS QueryRemoveUsbDevice( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS QueryStopUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS CancelStopUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Usb.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This File Holds all the USB Device access related declarations
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __SKYWALKER1_USB_H
|
||||
#define __SKYWALKER1_USB_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
extern "C"
|
||||
{
|
||||
//USB Related Headers
|
||||
#include <initguid.h>
|
||||
#pragma warning(disable:4200)
|
||||
#include <usbdi.h>
|
||||
#include <usbdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <usb100.h>
|
||||
#include "SkyWalker1Device.h"
|
||||
|
||||
}
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
#define MAX_BULK_PACKET_SIZE 8 * 512
|
||||
#define MAX_BULK_TRANSFER_SIZE (TRANSPORT_PACKET_COUNT * TRANSPORT_PACKET_SIZE) //Suppoting max Frame Size
|
||||
/* End of Macro Definitions */
|
||||
|
||||
/* Declare Enumerations here */
|
||||
typedef enum __USBSTATE {
|
||||
|
||||
NotStarted, // not started
|
||||
Stopped, // device stopped
|
||||
Working, // started and working
|
||||
PendingStop, // stop pending
|
||||
PendingRemove, // remove pending
|
||||
SurpriseRemoved, // removed by surprise
|
||||
Removed // removed
|
||||
|
||||
}USBSTATE;
|
||||
|
||||
typedef enum _QUEUE_STATE {
|
||||
|
||||
HoldRequests, // device is not started yet
|
||||
AllowRequests, // device is ready to process
|
||||
FailRequests // fail both existing and queued up requests
|
||||
|
||||
} QUEUE_STATE;
|
||||
|
||||
#define INITIALIZE_PNP_STATE(_Data_) \
|
||||
(_Data_)->UsbDeviceState = NotStarted;\
|
||||
(_Data_)->PreviousUsbDeviceState = NotStarted;
|
||||
|
||||
#define SET_NEW_PNP_STATE(_Data_, _state_) \
|
||||
(_Data_)->PreviousUsbDeviceState = (_Data_)->UsbDeviceState;\
|
||||
(_Data_)->UsbDeviceState = (_state_);
|
||||
|
||||
#define RESTORE_PREVIOUS_PNP_STATE(_Data_) \
|
||||
(_Data_)->UsbDeviceState = (_Data_)->PreviousUsbDeviceState;
|
||||
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Global & Static variables Declaration */
|
||||
//BulkUsb Read Write Context
|
||||
typedef struct _BULKUSB_RW_CONTEXT {
|
||||
|
||||
PURB pUSBRequestBlock;
|
||||
PUCHAR pTransferBuffer;
|
||||
ULONG ulRemainingByteTransfer; // remaining to xfer
|
||||
ULONG ulCompletedByteTransfer; // cumulate xfer
|
||||
ULONG ulStreamIndex;
|
||||
class CSkyWalker1Device * pDevice;
|
||||
|
||||
} BULKUSB_RW_CONTEXT, * PBULKUSB_RW_CONTEXT;
|
||||
/* End of Global & Static variables Declaration */
|
||||
|
||||
/* External Variable Declaration */
|
||||
/* End of External Variable Declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
//Usb Access functions
|
||||
NTSTATUS InitializeUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoReqestPacket);
|
||||
NTSTATUS DeconfigureUsbDevice(IN PKSDEVICE pKSDeviceObject);
|
||||
NTSTATUS StopUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS ReadWriteUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN ULONG ulStreamIndex,
|
||||
IN ULONG ulPacketIndex,
|
||||
IN PUCHAR pucTransferBuffer,
|
||||
IN ULONG ulTransferLength,
|
||||
IN BOOLEAN bRead);
|
||||
NTSTATUS ControlUsbDevice( IN PKSDEVICE pKSDeviceObject,
|
||||
IN UCHAR ucRequest,
|
||||
IN USHORT usValue,
|
||||
IN USHORT usIndex,
|
||||
IN PUCHAR pucTransferBuffer,
|
||||
IN ULONG ulTransferLength,
|
||||
IN BOOLEAN bRead);
|
||||
NTSTATUS RemoveUsbDevice( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS SurpriseUsbDeviceRemoval(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS CancelRemoveUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS QueryRemoveUsbDevice( IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS QueryStopUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
NTSTATUS CancelStopUsbDevice(IN PKSDEVICE pKSDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
#endif /*__SKYWALKER1_USB_H*/
|
||||
|
|
@ -1,91 +1,91 @@
|
|||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Utility.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file basically holds the Utility related Common Declarations
|
||||
used in the SkyWalker Driver Module
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef SKYWALKER1_UTILITY_H
|
||||
#define SKYWALKER1_UTILITY_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include <wdm.h>
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
#define SKYWALKER1_DRIVER_NAME "SkyWalker1TVTuner"
|
||||
|
||||
extern int nCurrentDebugLevel;
|
||||
|
||||
#define DEBUG_ON
|
||||
#ifdef DEBUG_ON
|
||||
|
||||
#define SkyWalkerDebugPrint(DebugLevel,_ARGUMENTS_) \
|
||||
if((DebugLevel) <= nCurrentDebugLevel) \
|
||||
{ \
|
||||
DbgPrint _ARGUMENTS_; \
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define SkyWalkerDebugPrint(DebugLevel,__ARGUMENTS__)
|
||||
|
||||
#endif
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
/* 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 */
|
||||
|
||||
/* ENUM : enDebugLevels */
|
||||
/* PURPOSE : To Define Different Debug Levels */
|
||||
enum enDebugLevels
|
||||
{
|
||||
DISABLE_DEBUG = 0,
|
||||
ENTRY_LEVEL,
|
||||
INTERMEDIATE_LEVEL,
|
||||
EXTREME_LEVEL,
|
||||
};
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
void PrintFunctionEntry(IN char * pcFunctionName);
|
||||
void PrintFunctionExit(IN char * pcFunctionName, IN NTSTATUS ntReturnCode);
|
||||
char * GetCurrentIrqlString(void);
|
||||
VOID Delay(IN ULONG ulDelayInMicroSeconds); //To Delay the Execution Thread
|
||||
|
||||
NTSTATUS LowerDeviceCompletedIrp(IN PDEVICE_OBJECT pDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PVOID pContext);
|
||||
NTSTATUS PassDownIRPAndWaitForCompletion(IN PDEVICE_OBJECT pLowerDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN BOOLEAN bCopyStackLocation);
|
||||
NTSTATUS PassDownIRPAndForget(IN PDEVICE_OBJECT pLowerDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
VOID CompleteIrpInDispatch(IN PDEVICE_OBJECT pDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
PUCHAR NTStatusToString(NTSTATUS Status) ;
|
||||
VOID PrintDeviceChangeState(IN KSSTATE ToState,IN KSSTATE FromState);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
|
||||
|
||||
#endif /*SKYWALKER1_UTILITY_H*/
|
||||
|
||||
/*****************************************************************************
|
||||
Company : Shree Ganesha Inc.
|
||||
File Name : SkyWalker1Utility.h
|
||||
Author :
|
||||
Date :
|
||||
Purpose : This file basically holds the Utility related Common Declarations
|
||||
used in the SkyWalker Driver Module
|
||||
|
||||
Revision History:
|
||||
===============================================================================
|
||||
DATE VERSION AUTHOR REMARK
|
||||
===============================================================================
|
||||
|
||||
XXth April,2009 01 Initial Version
|
||||
|
||||
*****************************************************************************/
|
||||
#ifndef SKYWALKER1_UTILITY_H
|
||||
#define SKYWALKER1_UTILITY_H
|
||||
|
||||
/* Include the Library and Other header file */
|
||||
#include <wdm.h>
|
||||
/* End of Inclusion the Library and Other header file */
|
||||
|
||||
/* Macro Definitions */
|
||||
#define SKYWALKER1_DRIVER_NAME "SkyWalker1TVTuner"
|
||||
|
||||
extern int nCurrentDebugLevel;
|
||||
|
||||
#define DEBUG_ON
|
||||
#ifdef DEBUG_ON
|
||||
|
||||
#define SkyWalkerDebugPrint(DebugLevel,_ARGUMENTS_) \
|
||||
if((DebugLevel) <= nCurrentDebugLevel) \
|
||||
{ \
|
||||
DbgPrint _ARGUMENTS_; \
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define SkyWalkerDebugPrint(DebugLevel,__ARGUMENTS__)
|
||||
|
||||
#endif
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
/* 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 */
|
||||
|
||||
/* ENUM : enDebugLevels */
|
||||
/* PURPOSE : To Define Different Debug Levels */
|
||||
enum enDebugLevels
|
||||
{
|
||||
DISABLE_DEBUG = 0,
|
||||
ENTRY_LEVEL,
|
||||
INTERMEDIATE_LEVEL,
|
||||
EXTREME_LEVEL,
|
||||
};
|
||||
/* End of Enumeration declaration */
|
||||
|
||||
/* Function Prototypes */
|
||||
void PrintFunctionEntry(IN char * pcFunctionName);
|
||||
void PrintFunctionExit(IN char * pcFunctionName, IN NTSTATUS ntReturnCode);
|
||||
char * GetCurrentIrqlString(void);
|
||||
VOID Delay(IN ULONG ulDelayInMicroSeconds); //To Delay the Execution Thread
|
||||
|
||||
NTSTATUS LowerDeviceCompletedIrp(IN PDEVICE_OBJECT pDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN PVOID pContext);
|
||||
NTSTATUS PassDownIRPAndWaitForCompletion(IN PDEVICE_OBJECT pLowerDeviceObject,
|
||||
IN PIRP pIoRequestPacket,
|
||||
IN BOOLEAN bCopyStackLocation);
|
||||
NTSTATUS PassDownIRPAndForget(IN PDEVICE_OBJECT pLowerDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
VOID CompleteIrpInDispatch(IN PDEVICE_OBJECT pDeviceObject,
|
||||
IN PIRP pIoRequestPacket);
|
||||
PUCHAR NTStatusToString(NTSTATUS Status) ;
|
||||
VOID PrintDeviceChangeState(IN KSSTATE ToState,IN KSSTATE FromState);
|
||||
/* End of Function prototype definitions */
|
||||
|
||||
|
||||
|
||||
#endif /*SKYWALKER1_UTILITY_H*/
|
||||
|
||||
|
|
|
|||
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
|
||||
|
||||
|
|
@ -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,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,18 +1,18 @@
|
|||
This firmware update utility will upgrade 8pSK-toUSB2 Rev.2 adapter firmware to ver.2.10.4
|
||||
|
||||
##############################################################################################################
|
||||
#
|
||||
# Make sure that genpix 8pSK-toUSB2 Rev.2 adapter is the ONLY genpix device connected to PC during firmware upgrade.
|
||||
# Disconnect all other genpix devices.
|
||||
#
|
||||
# 8PSK module has to be connected to adapter during firmware upgrade procedure.
|
||||
#
|
||||
# Do NOT switch the PC power off during firmware upgrade procedure.
|
||||
# Do NOT plug/unplug any USB devices during firmware upgrade procedure.
|
||||
#
|
||||
##############################################################################################################
|
||||
|
||||
8pSK-toUSB2 Rev.2 adapter firmware updater runs in Windows x32/x64 environment only (Windows XP and higher).
|
||||
|
||||
To start firmware upgrade:
|
||||
double-click on Rev2_update_2_10_4.exe file, and follow the instruction on the screen.
|
||||
This firmware update utility will upgrade 8pSK-toUSB2 Rev.2 adapter firmware to ver.2.10.4
|
||||
|
||||
##############################################################################################################
|
||||
#
|
||||
# Make sure that genpix 8pSK-toUSB2 Rev.2 adapter is the ONLY genpix device connected to PC during firmware upgrade.
|
||||
# Disconnect all other genpix devices.
|
||||
#
|
||||
# 8PSK module has to be connected to adapter during firmware upgrade procedure.
|
||||
#
|
||||
# Do NOT switch the PC power off during firmware upgrade procedure.
|
||||
# Do NOT plug/unplug any USB devices during firmware upgrade procedure.
|
||||
#
|
||||
##############################################################################################################
|
||||
|
||||
8pSK-toUSB2 Rev.2 adapter firmware updater runs in Windows x32/x64 environment only (Windows XP and higher).
|
||||
|
||||
To start firmware upgrade:
|
||||
double-click on Rev2_update_2_10_4.exe file, and follow the instruction on the screen.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue