mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
952 lines
22 KiB
952 lines
22 KiB
//------------------------------------------------------------------------------
|
|
// File: BDAIface.idl
|
|
//
|
|
// Desc: This file defines the Ring 3 BDA interfaces that are common to
|
|
// all BDA network and device types.
|
|
//
|
|
// The interfaces specific to a particular Network Type or filter
|
|
// implementation are defined in a separate include file for that
|
|
// Network Type or filter implementation.
|
|
//
|
|
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
// IUnknown import idl
|
|
//---------------------------------------------------------------------
|
|
#ifndef DO_NO_IMPORTS
|
|
import "unknwn.idl";
|
|
import "strmif.idl";
|
|
import "BdaTypes.h";
|
|
#endif
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_NetworkProvider interface
|
|
//
|
|
// Implemented by a BDA Network Provider
|
|
//
|
|
// Used by a BDA device filter to register itself with
|
|
// a Network Provider and query information about the
|
|
// the current tuning request.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(fd501041-8ebe-11ce-8183-00aa00577da2),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_NetworkProvider : IUnknown
|
|
{
|
|
|
|
HRESULT
|
|
PutSignalSource (
|
|
[in] ULONG ulSignalSource
|
|
);
|
|
|
|
|
|
HRESULT
|
|
GetSignalSource (
|
|
[in, out] ULONG * pulSignalSource
|
|
);
|
|
|
|
HRESULT
|
|
GetNetworkType (
|
|
[in, out] GUID * pguidNetworkType
|
|
);
|
|
|
|
HRESULT
|
|
PutTuningSpace (
|
|
[in] REFGUID guidTuningSpace
|
|
);
|
|
|
|
HRESULT
|
|
GetTuningSpace (
|
|
[in, out] GUID * pguidTuingSpace
|
|
);
|
|
|
|
HRESULT
|
|
RegisterDeviceFilter (
|
|
[in] IUnknown * pUnkFilterControl,
|
|
[in, out] ULONG * ppvRegisitrationContext
|
|
);
|
|
|
|
HRESULT
|
|
UnRegisterDeviceFilter (
|
|
[in] ULONG pvRegistrationContext
|
|
);
|
|
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_EthernetFilter interface
|
|
//
|
|
// Implemented by a BDA Network Provider
|
|
//
|
|
// Used by an Ethernet Network Data Sink filter (eg. IPSink) to
|
|
// request that the Network Provider make its best effort to tune
|
|
// to the stream(s) on which a list of Ethernet multicast addresses
|
|
// may be transmitted.
|
|
//
|
|
// Addresses in the address list are byte aligned in Network order.
|
|
// UlcbAddresses will always be an integer multiple of the
|
|
// size of an ethernet address.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(71985F43-1CA1-11d3-9CC8-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_EthernetFilter : IUnknown
|
|
{
|
|
HRESULT
|
|
GetMulticastListSize (
|
|
[in, out] ULONG * pulcbAddresses
|
|
);
|
|
|
|
HRESULT
|
|
PutMulticastList (
|
|
[in] ULONG ulcbAddresses,
|
|
[in, size_is(ulcbAddresses)] BYTE pAddressList []
|
|
);
|
|
|
|
HRESULT
|
|
GetMulticastList (
|
|
[in, out] ULONG * pulcbAddresses,
|
|
[out, size_is(*pulcbAddresses)] BYTE pAddressList []
|
|
);
|
|
|
|
HRESULT
|
|
PutMulticastMode (
|
|
[in] ULONG ulModeMask
|
|
);
|
|
|
|
HRESULT
|
|
GetMulticastMode (
|
|
[out] ULONG * pulModeMask
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_IPV4Filter interface
|
|
//
|
|
// Implemented by a BDA Network Provider
|
|
//
|
|
// Used by an IPv4 Network Data Sink filter to request
|
|
// that the Network Provider make its best effort to tune
|
|
// to the stream(s) on which a list of IPv4 multicast addresses
|
|
// may be transmitted.
|
|
//
|
|
// Addresses in the address list are byte aligned in Network order.
|
|
// UlcbAddresses will always be an integer multiple of the
|
|
// size of an IPv4 address.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(71985F44-1CA1-11d3-9CC8-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_IPV4Filter : IUnknown
|
|
{
|
|
|
|
HRESULT
|
|
GetMulticastListSize (
|
|
[in, out] ULONG * pulcbAddresses
|
|
);
|
|
|
|
HRESULT
|
|
PutMulticastList (
|
|
[in] ULONG ulcbAddresses,
|
|
[in, size_is(ulcbAddresses)] BYTE pAddressList []
|
|
);
|
|
|
|
HRESULT
|
|
GetMulticastList (
|
|
[in, out] ULONG * pulcbAddresses,
|
|
[out, size_is(*pulcbAddresses)] BYTE pAddressList []
|
|
);
|
|
|
|
HRESULT
|
|
PutMulticastMode (
|
|
[in] ULONG ulModeMask
|
|
);
|
|
|
|
HRESULT
|
|
GetMulticastMode (
|
|
[out] ULONG* pulModeMask
|
|
);
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_IPV6Filter interface
|
|
//
|
|
// Implemented by a BDA Network Provider
|
|
//
|
|
// Used by an IPv6 Network Data Sink filter to request
|
|
// that the Network Provider make its best effort to tune
|
|
// to the stream(s) on which a list of IPv6 multicast addresses
|
|
// may be transmitted.
|
|
//
|
|
// Addresses in the address list are byte aligned in Network order.
|
|
// UlcbAddresses will always be an integer multiple of the
|
|
// size of an IPv6 address.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(E1785A74-2A23-4fb3-9245-A8F88017EF33),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_IPV6Filter : IUnknown
|
|
{
|
|
|
|
HRESULT
|
|
GetMulticastListSize (
|
|
[in, out] ULONG * pulcbAddresses
|
|
);
|
|
|
|
HRESULT
|
|
PutMulticastList (
|
|
[in] ULONG ulcbAddresses,
|
|
[in, size_is(ulcbAddresses)] BYTE pAddressList []
|
|
);
|
|
|
|
HRESULT
|
|
GetMulticastList (
|
|
[in, out] ULONG * pulcbAddresses,
|
|
[out, size_is(*pulcbAddresses)] BYTE pAddressList []
|
|
);
|
|
|
|
HRESULT
|
|
PutMulticastMode (
|
|
[in] ULONG ulModeMask
|
|
);
|
|
|
|
HRESULT
|
|
GetMulticastMode (
|
|
[out] ULONG* pulModeMask
|
|
);
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_DeviceControl interface
|
|
//
|
|
// Implemented by a BDA Device Filter
|
|
//
|
|
// Used by the Network Provider to commit a series of changes
|
|
// on a BDA device filter. The device filter validates and
|
|
// accumulates all changes requested after StartChanges(). It
|
|
// effects the accumulated list of changes when CommitChanges() is
|
|
// called.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(FD0A5AF3-B41D-11d2-9C95-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_DeviceControl : IUnknown
|
|
{
|
|
HRESULT
|
|
StartChanges (
|
|
void
|
|
);
|
|
|
|
HRESULT
|
|
CheckChanges (
|
|
void
|
|
);
|
|
|
|
HRESULT
|
|
CommitChanges (
|
|
void
|
|
);
|
|
|
|
HRESULT
|
|
GetChangeState (
|
|
[in, out] ULONG * pState
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_PinControl interface
|
|
//
|
|
// Implemented by a BDA Device Filter's Pin
|
|
//
|
|
// Used by the Network Provider to determine the BDA PinID and
|
|
// PinType on a BDA Filter's Pin
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(0DED49D5-A8B7-4d5d-97A1-12B0C195874D),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_PinControl : IUnknown
|
|
{
|
|
HRESULT
|
|
GetPinID (
|
|
[in, out] ULONG * pulPinID
|
|
);
|
|
|
|
HRESULT
|
|
GetPinType (
|
|
[in, out] ULONG * pulPinType
|
|
);
|
|
|
|
HRESULT
|
|
RegistrationContext (
|
|
[in, out] ULONG * pulRegistrationCtx
|
|
);
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_SignalProperties interface
|
|
//
|
|
// Implemented by a BDA Device Filter
|
|
//
|
|
// BDA Signal Properties is used by a Network Provider to inform
|
|
// a BDA Device Filter about the current tuning request. The
|
|
// Network Provider will call the Put functions when the BDA
|
|
// device is first registered with the Network Provider and whenever
|
|
// the current tuning request is modified.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(D2F1644B-B409-11d2-BC69-00A0C9EE9E16),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_SignalProperties : IUnknown
|
|
{
|
|
HRESULT
|
|
PutNetworkType (
|
|
[in] REFGUID guidNetworkType
|
|
);
|
|
|
|
HRESULT
|
|
GetNetworkType (
|
|
[in, out] GUID * pguidNetworkType
|
|
);
|
|
|
|
HRESULT
|
|
PutSignalSource (
|
|
[in] ULONG ulSignalSource
|
|
);
|
|
|
|
HRESULT
|
|
GetSignalSource (
|
|
[in, out] ULONG * pulSignalSource
|
|
);
|
|
|
|
HRESULT
|
|
PutTuningSpace (
|
|
[in] REFGUID guidTuningSpace
|
|
);
|
|
|
|
HRESULT
|
|
GetTuningSpace (
|
|
[in, out] GUID * pguidTuingSpace
|
|
);
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_SignalStatistics interface
|
|
//
|
|
// Implemented by a BDA Control Node
|
|
//
|
|
// A BDA Control Node may return these properties to describe
|
|
// the condition of a signal that is being received.
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(1347D106-CF3A-428a-A5CB-AC0D9A2A4338),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_SignalStatistics : IUnknown
|
|
{
|
|
HRESULT
|
|
put_SignalStrength (
|
|
[in] LONG lDbStrength
|
|
);
|
|
|
|
HRESULT
|
|
get_SignalStrength (
|
|
[in, out] LONG * plDbStrength
|
|
);
|
|
|
|
HRESULT
|
|
put_SignalQuality (
|
|
[in] LONG lPercentQuality
|
|
);
|
|
|
|
HRESULT
|
|
get_SignalQuality (
|
|
[in, out] LONG * plPercentQuality
|
|
);
|
|
|
|
HRESULT
|
|
put_SignalPresent (
|
|
[in] BOOLEAN fPresent
|
|
);
|
|
|
|
HRESULT
|
|
get_SignalPresent (
|
|
[in, out] BOOLEAN * pfPresent
|
|
);
|
|
|
|
HRESULT
|
|
put_SignalLocked (
|
|
[in] BOOLEAN fLocked
|
|
);
|
|
|
|
HRESULT
|
|
get_SignalLocked (
|
|
[in, out] BOOLEAN * pfLocked
|
|
);
|
|
|
|
HRESULT
|
|
put_SampleTime (
|
|
[in] LONG lmsSampleTime
|
|
);
|
|
|
|
HRESULT
|
|
get_SampleTime (
|
|
[in, out] LONG * plmsSampleTime
|
|
);
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// IBDA_Topology interface
|
|
//
|
|
// Implemented by a BDA Device Filter
|
|
//
|
|
// Used by the Network Provider to query a BDA Device Filter's
|
|
// possible topologies (template topology) and to configure
|
|
// the device with an appropriate topology for the current
|
|
// tuning request. It is also used to get an IUnknown to
|
|
// a control node which may be used to set specific tuning
|
|
// information.
|
|
//
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(79B56888-7FEA-4690-B45D-38FD3C7849BE),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_Topology : IUnknown
|
|
{
|
|
HRESULT
|
|
GetNodeTypes (
|
|
[in, out] ULONG * pulcNodeTypes,
|
|
[in] ULONG ulcNodeTypesMax,
|
|
[in, out, size_is (ulcNodeTypesMax)] ULONG rgulNodeTypes[]
|
|
);
|
|
|
|
HRESULT
|
|
GetNodeDescriptors (
|
|
[in, out] ULONG * ulcNodeDescriptors,
|
|
[in] ULONG ulcNodeDescriptorsMax,
|
|
[in, out, size_is (ulcNodeDescriptorsMax)] BDANODE_DESCRIPTOR rgNodeDescriptors[]
|
|
);
|
|
|
|
HRESULT
|
|
GetNodeInterfaces (
|
|
[in] ULONG ulNodeType,
|
|
[in, out] ULONG * pulcInterfaces,
|
|
[in] ULONG ulcInterfacesMax,
|
|
[in, out, size_is (ulcInterfacesMax)] GUID rgguidInterfaces[]
|
|
);
|
|
|
|
HRESULT
|
|
GetPinTypes (
|
|
[in, out] ULONG * pulcPinTypes,
|
|
[in] ULONG ulcPinTypesMax,
|
|
[in, out, size_is (ulcPinTypesMax)] ULONG rgulPinTypes[]
|
|
);
|
|
|
|
HRESULT
|
|
GetTemplateConnections (
|
|
[in, out] ULONG * pulcConnections,
|
|
[in] ULONG ulcConnectionsMax,
|
|
[in, out, size_is (ulcConnectionsMax)] BDA_TEMPLATE_CONNECTION rgConnections[]
|
|
);
|
|
|
|
HRESULT
|
|
CreatePin (
|
|
[in] ULONG ulPinType,
|
|
[in, out] ULONG * pulPinId
|
|
);
|
|
|
|
HRESULT
|
|
DeletePin (
|
|
[in] ULONG ulPinId
|
|
);
|
|
|
|
HRESULT
|
|
SetMediaType (
|
|
[in] ULONG ulPinId,
|
|
[in] AM_MEDIA_TYPE * pMediaType
|
|
);
|
|
|
|
HRESULT
|
|
SetMedium (
|
|
[in] ULONG ulPinId,
|
|
[in] REGPINMEDIUM * pMedium
|
|
);
|
|
|
|
HRESULT
|
|
CreateTopology (
|
|
[in] ULONG ulInputPinId,
|
|
[in] ULONG ulOutputPinId
|
|
);
|
|
|
|
HRESULT
|
|
GetControlNode (
|
|
[in] ULONG ulInputPinId,
|
|
[in] ULONG ulOutputPinId,
|
|
[in] ULONG ulNodeType,
|
|
[in, out] IUnknown ** ppControlNode
|
|
);
|
|
}
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_VoidTransform interface
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(71985F46-1CA1-11d3-9CC8-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_VoidTransform : IUnknown
|
|
{
|
|
HRESULT
|
|
Start (
|
|
void
|
|
);
|
|
|
|
HRESULT
|
|
Stop (
|
|
void
|
|
);
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_NullTransform interface
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(DDF15B0D-BD25-11d2-9CA0-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_NullTransform : IUnknown
|
|
{
|
|
HRESULT
|
|
Start (
|
|
void
|
|
);
|
|
|
|
HRESULT
|
|
Stop (
|
|
void
|
|
);
|
|
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_FrequencyFilter interface
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(71985F47-1CA1-11d3-9CC8-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_FrequencyFilter : IUnknown
|
|
{
|
|
HRESULT
|
|
put_Autotune (
|
|
[in] ULONG ulTransponder
|
|
);
|
|
|
|
HRESULT
|
|
get_Autotune (
|
|
[in, out] ULONG * pulTransponder
|
|
);
|
|
|
|
HRESULT
|
|
put_Frequency (
|
|
[in] ULONG ulFrequency
|
|
);
|
|
|
|
HRESULT
|
|
get_Frequency (
|
|
[in, out] ULONG * pulFrequency
|
|
);
|
|
|
|
HRESULT
|
|
put_Polarity (
|
|
[in] Polarisation Polarity
|
|
);
|
|
|
|
HRESULT
|
|
get_Polarity (
|
|
[in, out] Polarisation * pPolarity
|
|
);
|
|
|
|
HRESULT
|
|
put_Range (
|
|
[in] ULONG ulRange
|
|
);
|
|
|
|
HRESULT
|
|
get_Range (
|
|
[in, out] ULONG * pulRange
|
|
);
|
|
|
|
HRESULT
|
|
put_Bandwidth (
|
|
[in] ULONG ulBandwidth
|
|
);
|
|
|
|
HRESULT
|
|
get_Bandwidth (
|
|
[in, out] ULONG * pulBandwidth
|
|
);
|
|
|
|
HRESULT
|
|
put_FrequencyMultiplier (
|
|
[in] ULONG ulMultiplier
|
|
);
|
|
|
|
HRESULT
|
|
get_FrequencyMultiplier (
|
|
[in, out] ULONG * pulMultiplier
|
|
);
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_LNBInfo interface
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(992CF102-49F9-4719-A664-C4F23E2408F4),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_LNBInfo : IUnknown
|
|
{
|
|
HRESULT
|
|
put_LocalOscilatorFrequencyLowBand (
|
|
[in] ULONG ulLOFLow
|
|
);
|
|
|
|
HRESULT
|
|
get_LocalOscilatorFrequencyLowBand (
|
|
[in, out] ULONG * pulLOFLow
|
|
);
|
|
|
|
HRESULT
|
|
put_LocalOscilatorFrequencyHighBand (
|
|
[in] ULONG ulLOFHigh
|
|
);
|
|
|
|
HRESULT
|
|
get_LocalOscilatorFrequencyHighBand (
|
|
[in, out] ULONG * pulLOFHigh
|
|
);
|
|
|
|
HRESULT
|
|
put_HighLowSwitchFrequency (
|
|
[in] ULONG ulSwitchFrequency
|
|
);
|
|
|
|
HRESULT
|
|
get_HighLowSwitchFrequency (
|
|
[in, out] ULONG * pulSwitchFrequency
|
|
);
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_AutoDemodulate interface
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_AutoDemodulate : IUnknown
|
|
{
|
|
HRESULT
|
|
put_AutoDemodulate (
|
|
void
|
|
);
|
|
}
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_DigitalDemodulator interface
|
|
//---------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(EF30F379-985B-4d10-B640-A79D5E04E1E0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBDA_DigitalDemodulator : IUnknown
|
|
{
|
|
HRESULT
|
|
put_ModulationType (
|
|
[in] ModulationType * pModulationType
|
|
);
|
|
|
|
HRESULT
|
|
get_ModulationType (
|
|
[in, out] ModulationType * pModulationType
|
|
);
|
|
|
|
HRESULT
|
|
put_InnerFECMethod (
|
|
[in] FECMethod * pFECMethod
|
|
);
|
|
|
|
HRESULT
|
|
get_InnerFECMethod (
|
|
[in, out] FECMethod * pFECMethod
|
|
);
|
|
|
|
HRESULT
|
|
put_InnerFECRate (
|
|
[in] BinaryConvolutionCodeRate * pFECRate
|
|
);
|
|
|
|
HRESULT
|
|
get_InnerFECRate (
|
|
[in, out] BinaryConvolutionCodeRate * pFECRate
|
|
);
|
|
|
|
HRESULT
|
|
put_OuterFECMethod (
|
|
[in] FECMethod * pFECMethod
|
|
);
|
|
|
|
HRESULT
|
|
get_OuterFECMethod (
|
|
[in, out] FECMethod * pFECMethod
|
|
);
|
|
|
|
HRESULT
|
|
put_OuterFECRate (
|
|
[in] BinaryConvolutionCodeRate * pFECRate
|
|
);
|
|
|
|
HRESULT
|
|
get_OuterFECRate (
|
|
[in, out] BinaryConvolutionCodeRate * pFECRate
|
|
);
|
|
|
|
HRESULT
|
|
put_SymbolRate (
|
|
[in] ULONG * pSymbolRate
|
|
);
|
|
|
|
HRESULT
|
|
get_SymbolRate (
|
|
[in, out] ULONG * pSymbolRate
|
|
);
|
|
|
|
HRESULT
|
|
put_SpectralInversion (
|
|
[in] SpectralInversion * pSpectralInversion
|
|
);
|
|
|
|
HRESULT
|
|
get_SpectralInversion (
|
|
[in, out] SpectralInversion * pSpectralInversion
|
|
);
|
|
}
|
|
|
|
typedef enum
|
|
{
|
|
KSPROPERTY_IPSINK_MULTICASTLIST,
|
|
KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION,
|
|
KSPROPERTY_IPSINK_ADAPTER_ADDRESS
|
|
|
|
} KSPROPERTY_IPSINK;
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
// IBDA_IPSinkControl interface (mutlimedia\filters.ks\ipsink)
|
|
// IBDA_IPSinkInfo interface
|
|
//
|
|
// IBDA_IPSinkControl is no longer being supported for Ring3 clients.
|
|
// Use the BDA_IPSinkInfo interface instead.
|
|
//---------------------------------------------------------------------
|
|
|
|
[
|
|
object,
|
|
uuid(3F4DC8E2-4050-11d3-8F4B-00C04F7971E2),
|
|
pointer_default(unique),
|
|
helpstring("Not supported - Use IBDA_IPSinkInfo instead")
|
|
]
|
|
interface IBDA_IPSinkControl : IUnknown
|
|
{
|
|
HRESULT GetMulticastList (
|
|
[in, out] unsigned long *pulcbSize,
|
|
[in, out] BYTE **pbBuffer
|
|
);
|
|
|
|
|
|
HRESULT GetAdapterIPAddress (
|
|
[in,out] unsigned long *pulcbSize,
|
|
[in,out] BYTE **pbBuffer
|
|
);
|
|
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(A750108F-492E-4d51-95F7-649B23FF7AD7),
|
|
pointer_default(unique)
|
|
]
|
|
interface IBDA_IPSinkInfo : IUnknown
|
|
{
|
|
HRESULT get_MulticastList ( // returns N 6-byte 802.3 IP addreses.
|
|
[in, out] ULONG * pulcbAddresses, // 6*N
|
|
[out, size_is(*pulcbAddresses)] BYTE **ppbAddressList // Allocated by caller, must deallocate in callee with CoTaskMemFree()
|
|
);
|
|
|
|
HRESULT get_AdapterIPAddress (
|
|
[out] BSTR *pbstrBuffer
|
|
);
|
|
|
|
HRESULT get_AdapterDescription (
|
|
[out] BSTR *pbstrBuffer
|
|
);
|
|
}
|
|
//
|
|
// mpeg-2 demultiplexer-specific interfaces follow
|
|
//
|
|
|
|
//---------------------------------------------------------------------
|
|
// IEnumPIDMap interface
|
|
//---------------------------------------------------------------------
|
|
|
|
#ifdef REMOVE_THESE
|
|
typedef enum {
|
|
MEDIA_TRANSPORT_PACKET, // complete TS packet e.g. pass-through mode
|
|
MEDIA_ELEMENTARY_STREAM, // PES payloads; audio/video only
|
|
MEDIA_MPEG2_PSI, // PAT, PMT, CAT, Private
|
|
MEDIA_TRANSPORT_PAYLOAD // gathered TS packet payloads (PES packets, etc...)
|
|
} MEDIA_SAMPLE_CONTENT ;
|
|
|
|
typedef struct {
|
|
ULONG ulPID ;
|
|
MEDIA_SAMPLE_CONTENT MediaSampleContent ;
|
|
} PID_MAP ;
|
|
#endif // REMOVE_THESE
|
|
|
|
[
|
|
object,
|
|
uuid (afb6c2a2-2c41-11d3-8a60-0000f81e0e4a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumPIDMap : IUnknown
|
|
{
|
|
HRESULT
|
|
Next (
|
|
[in] ULONG cRequest,
|
|
[in, out, size_is (cRequest)] PID_MAP * pPIDMap,
|
|
[out] ULONG * pcReceived
|
|
) ;
|
|
|
|
HRESULT
|
|
Skip (
|
|
[in] ULONG cRecords
|
|
) ;
|
|
|
|
HRESULT
|
|
Reset (
|
|
) ;
|
|
|
|
HRESULT
|
|
Clone (
|
|
[out] IEnumPIDMap ** ppIEnumPIDMap
|
|
) ;
|
|
} ;
|
|
|
|
//---------------------------------------------------------------------
|
|
// IMPEG2PIDMap interface
|
|
//---------------------------------------------------------------------
|
|
|
|
[
|
|
object,
|
|
uuid (afb6c2a1-2c41-11d3-8a60-0000f81e0e4a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMPEG2PIDMap : IUnknown
|
|
{
|
|
HRESULT
|
|
MapPID (
|
|
[in] ULONG culPID,
|
|
[in] ULONG * pulPID,
|
|
[in] MEDIA_SAMPLE_CONTENT MediaSampleContent
|
|
) ;
|
|
|
|
HRESULT
|
|
UnmapPID (
|
|
[in] ULONG culPID,
|
|
[in] ULONG * pulPID
|
|
) ;
|
|
|
|
HRESULT
|
|
EnumPIDMap (
|
|
[out] IEnumPIDMap ** pIEnumPIDMap
|
|
) ;
|
|
} ;
|