ReactOS 0.4.15-dev-7788-g1ad9096
portcls.h File Reference
#include <wdm.h>
#include <windef.h>
#include <mmreg.h>
#include <punknown.h>
#include <ks.h>
#include <ksmedia.h>
#include <drmk.h>
Include dependency graph for portcls.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PCPROPERTY_ITEM
 
struct  _PCPROPERTY_REQUEST
 
struct  _PCEVENT_ITEM
 
struct  _PCEVENT_REQUEST
 
struct  _PCMETHOD_ITEM
 
struct  _PCMETHOD_REQUEST
 
struct  PCAUTOMATION_TABLE
 
struct  PCCONNECTION_DESCRIPTOR
 
struct  PCPIN_DESCRIPTOR
 
struct  PCNODE_DESCRIPTOR
 
struct  PCFILTER_DESCRIPTOR
 

Macros

#define NOBITMAP
 
#define PORTCLASSAPI   EXTERN_C __declspec(dllimport)
 
#define PCFILTER_NODE   ((ULONG) -1)
 
#define _100NS_UNITS_PER_SECOND   10000000L
 
#define PORT_CLASS_DEVICE_EXTENSION_SIZE   ( 64 * sizeof(ULONG_PTR) )
 
#define PCEVENT_ITEM_FLAG_ENABLE   KSEVENT_TYPE_ENABLE
 
#define PCEVENT_ITEM_FLAG_ONESHOT   KSEVENT_TYPE_ONESHOT
 
#define PCEVENT_ITEM_FLAG_BASICSUPPORT   KSEVENT_TYPE_BASICSUPPORT
 
#define PCEVENT_VERB_NONE   0
 
#define PCEVENT_VERB_ADD   1
 
#define PCEVENT_VERB_REMOVE   2
 
#define PCEVENT_VERB_SUPPORT   4
 
#define PCMETHOD_ITEM_FLAG_NONE   KSMETHOD_TYPE_NONE
 
#define PCMETHOD_ITEM_FLAG_READ   KSMETHOD_TYPE_READ
 
#define PCMETHOD_ITEM_FLAG_WRITE   KSMETHOD_TYPE_WRITE
 
#define PCMETHOD_ITEM_FLAG_MODIFY   KSMETHOD_TYPE_MODIFY
 
#define PCMETHOD_ITEM_FLAG_SOURCE   KSMETHOD_TYPE_SOURCE
 
#define PCMETHOD_ITEM_FLAG_BASICSUPPORT   KSMETHOD_TYPE_BASICSUPPORT
 
#define PCMETHOD_ITEM_FLAG_SEND
 
#define PCMETHOD_ITEM_FLAG_SETSUPPORT
 
#define PCPROPERTY_ITEM_FLAG_GET   KSPROPERTY_TYPE_GET
 
#define PCPROPERTY_ITEM_FLAG_SET   KSPROPERTY_TYPE_SET
 
#define PCPROPERTY_ITEM_FLAG_BASICSUPPORT   KSPROPERTY_TYPE_BASICSUPPORT
 
#define PCPROPERTY_ITEM_FLAG_SERIALIZERAW   KSPROPERTY_TYPE_SERIALIZERAW
 
#define PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW   KSPROPERTY_TYPE_UNSERIALIZERAW
 
#define PCPROPERTY_ITEM_FLAG_SERIALIZESIZE   KSPROPERTY_TYPE_SERIALIZESIZE
 
#define PCPROPERTY_ITEM_FLAG_SERIALIZE
 
#define PCPROPERTY_ITEM_FLAG_DEFAULTVALUES   KSPROPERTY_TYPE_DEFAULTVALUES
 
#define DEFINE_PCAUTOMATION_TABLE_PROP(AutomationTable, PropertyTable)
 
#define INTERFACE   IResourceList
 
#define IMP_IResourceList
 
#define NumberOfPorts()    NumberOfEntriesOfType(CmResourceTypePort)
 
#define FindTranslatedPort(n)    FindTranslatedEntry(CmResourceTypePort, (n))
 
#define FindUntranslatedPort(n)    FindUntranslatedEntry(CmResourceTypePort, (n))
 
#define AddPortFromParent(p, n)    AddEntryFromParent((p), CmResourceTypePort, (n))
 
#define NumberOfInterrupts()    NumberOfEntriesOfType(CmResourceTypeInterrupt)
 
#define FindTranslatedInterrupt(n)    FindTranslatedEntry(CmResourceTypeInterrupt, (n))
 
#define FindUntranslatedInterrupt(n)    FindUntranslatedEntry(CmResourceTypeInterrupt, (n))
 
#define AddInterruptFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeInterrupt, (n))
 
#define NumberOfMemories()    NumberOfEntriesOfType(CmResourceTypeMemory)
 
#define FindTranslatedMemory(n)    FindTranslatedEntry(CmResourceTypeMemory, (n))
 
#define FindUntranslatedMemory(n)    FindUntranslatedEntry(CmResourceTypeMemory, (n))
 
#define AddMemoryFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeMemory, (n))
 
#define NumberOfDmas()    NumberOfEntriesOfType(CmResourceTypeDma)
 
#define FindTranslatedDma(n)    FindTranslatedEntry(CmResourceTypeDma, (n))
 
#define FindUntranslatedDma(n)    FindUntranslatedEntry(CmResourceTypeDma, (n))
 
#define AddDmaFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeInterrupt, (n))
 
#define NumberOfDeviceSpecifics()    NumberOfEntriesOfType(CmResourceTypeDeviceSpecific)
 
#define FindTranslatedDeviceSpecific(n)    FindTranslatedEntry(CmResourceTypeDeviceSpecific, (n))
 
#define FindUntranslatedDeviceSpecific(n)    FindUntranslatedEntry(CmResourceTypeDeviceSpecific, (n))
 
#define AddDeviceSpecificFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeDeviceSpecific, (n))
 
#define NumberOfBusNumbers()    NumberOfEntriesOfType(CmResourceTypeBusNumber)
 
#define FindTranslatedBusNumber(n)    FindTranslatedEntry(CmResourceTypeBusNumber, (n))
 
#define FindUntranslatedBusNumber(n)    FindUntranslatedEntry(CmResourceTypeBusNumber, (n))
 
#define AddBusNumberFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeBusNumber, (n))
 
#define NumberOfDevicePrivates()    NumberOfEntriesOfType(CmResourceTypeDevicePrivate)
 
#define FindTranslatedDevicePrivate(n)    FindTranslatedEntry(CmResourceTypeDevicePrivate, (n))
 
#define FindUntranslatedDevicePrivate(n)    FindUntranslatedEntry(CmResourceTypeDevicePrivate, (n))
 
#define AddDevicePrivateFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeDevicePrivate, (n))
 
#define NumberOfAssignedResources()    NumberOfEntriesOfType(CmResourceTypeAssignedResource)
 
#define FindTranslatedAssignedResource(n)    FindTranslatedEntry(CmResourceTypeAssignedResource, (n))
 
#define FindUntranslatedAssignedResource(n)    FindUntranslatedEntry(CmResourceTypeAssignedResource, (n))
 
#define AddAssignedResourceFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeAssignedResource, (n))
 
#define NumberOfSubAllocateFroms()    NumberOfEntriesOfType(CmResourceTypeSubAllocateFrom)
 
#define FindTranslatedSubAllocateFrom(n)    FindTranslatedEntry(CmResourceTypeSubAllocateFrom, (n))
 
#define FindUntranslatedSubAllocateFrom(n)    FindUntranslatedEntry(CmResourceTypeSubAllocateFrom, (n))
 
#define AddSubAllocateFromFromParent(p, n)    AddEntryFromParent((p), CmResourceTypeSubAllocateFrom, (n))
 
#define INTERFACE   IServiceSink
 
#define IMP_IServiceSink    STDMETHODIMP_(void) RequestService(void);
 
#define INTERFACE   IServiceGroup
 
#define IMP_IServiceGroup
 
#define INTERFACE   IUnregisterSubdevice
 
#define IMP_IUnregisterSubdevice
 
#define INTERFACE   IUnregisterPhysicalConnection
 
#define IMP_IUnregisterPhysicalConnection
 
#define DEFINE_ABSTRACT_DMACHANNEL_PhysicalAddress    STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS ) PURE
 
#define DEFINE_ABSTRACT_DMACHANNEL()
 
#define IMP_IDmaChannel
 
#define INTERFACE   IDmaChannel
 
#define DEFINE_ABSTRACT_DMACHANNELSLAVE()
 
#define IMP_IDmaChannelSlave
 
#define INTERFACE   IDmaChannelSlave
 
#define INTERFACE   IDmaChannelSlave
 
#define INTERFACE   IInterruptSync
 
#define IMP_IInterruptSync
 
#define INTERFACE   IRegistryKey
 
#define IMP_IRegistryKey
 
#define IMP_IMusicTechnology
 
#define DEFINE_ABSTRACT_PORT()
 
#define INTERFACE   IPort
 
#define INTERFACE   IPortMidi
 
#define IMP_IPortMidi()
 
#define INTERFACE   IPortWaveCyclic
 
#define INTERFACE   IPortWavePci
 
#define DEFINE_ABSTRACT_MINIPORT()
 
#define IMP_IMiniport
 
#define INTERFACE   IMiniportMidiStream
 
#define INTERFACE   IMiniportMidi
 
#define INTERFACE   IPortTopology
 
#define INTERFACE   IPortTopology
 
#define IMP_IPortTopology   IMP_IPort
 
#define INTERFACE   IMiniportTopology
 
#define INTERFACE   IMiniportTopology
 
#define IMP_IMiniportTopology
 
#define INTERFACE   IMiniportWaveCyclicStream
 
#define IMP_IMiniportWaveCyclicStream
 
#define INTERFACE   IMiniportWaveCyclic
 
#define IMP_IMiniportWaveCyclic
 
#define INTERFACE   IPortWavePciStream
 
#define IMP_IPortWavePciStream
 
#define INTERFACE   IMiniportWavePciStream
 
#define IMP_IMiniportWavePciStream
 
#define INTERFACE   IMiniportWavePci
 
#define IMP_IMiniportWavePci
 
#define DEFINE_ABSTRACT_MINIPORTWAVERTSTREAM()
 
#define INTERFACE   IPortWaveRT
 
#define INTERFACE   IPortWaveRTStream
 
#define INTERFACE   IMiniportWaveRTStream
 
#define IMP_IMiniportWaveRTStream
 
#define INTERFACE   IMiniportWaveRTStreamNotification
 
#define INTERFACE   IMiniportWaveRT
 
#define IMP_IMiniportWaveRT
 
#define INTERFACE   IAdapterPowerManagement
 
#define IMP_IAdapterPowerManagement
 
#define INTERFACE   IPowerNotify
 
#define IMP_IPowerNotify
 
#define INTERFACE   IPinCount
 
#define INTERFACE   IPortEvents
 
#define IMP_IPortEvents
 
#define INTERFACE   IDrmPort
 
#define DEFINE_ABSTRACT_DRMPORT()
 
#define IMP_IDrmPort
 
#define INTERFACE   IDrmPort2
 
#define IMP_IDrmPort2
 
#define INTERFACE   IPortClsVersion
 
#define IMP_IPortClsVersion    STDMETHODIMP_(DWORD) GetVersion(void);
 
#define INTERFACE   IPreFetchOffset
 
#define IMP_IPreFetchOffset    STDMETHODIMP_(DWORD) SetPreFetchOffset(IN ULONG PreFetchOffset);
 
#define GTI_SECONDS(t)   (ULONGLONG(t)*10000000)
 
#define GTI_MILLISECONDS(t)   (ULONGLONG(t)*10000)
 
#define GTI_MICROSECONDS(t)   (ULONGLONG(t)*10)
 

Typedefs

typedef struct _PCPROPERTY_REQUEST PCPROPERTY_REQUEST
 
typedef struct _PCPROPERTY_REQUESTPPCPROPERTY_REQUEST
 
typedef NTSTATUS(NTAPIPCPFNPROPERTY_HANDLER) (IN PPCPROPERTY_REQUEST PropertyRequest)
 
typedef struct PCPROPERTY_ITEMPPCPROPERTY_ITEM
 
typedef NTSTATUS(NTAPIPCPFNEVENT_HANDLER) (IN struct _PCEVENT_REQUEST *EventRequest)
 
typedef struct _PCEVENT_ITEM PCEVENT_ITEM
 
typedef struct _PCEVENT_ITEMPPCEVENT_ITEM
 
typedef struct _PCEVENT_REQUEST PCEVENT_REQUEST
 
typedef struct _PCEVENT_REQUESTPPCEVENT_REQUEST
 
typedef NTSTATUS(NTAPIPCPFNMETHOD_HANDLER) (IN struct _PCMETHOD_REQUEST *MethodRequest)
 
typedef struct _PCMETHOD_ITEM PCMETHOD_ITEM
 
typedef struct _PCMETHOD_ITEMPPCMETHOD_ITEM
 
typedef struct _PCMETHOD_REQUEST PCMETHOD_REQUEST
 
typedef struct _PCMETHOD_REQUESTPPCMETHOD_REQUEST
 
typedef struct PCAUTOMATION_TABLEPPCAUTOMATION_TABLE
 
typedef struct PCCONNECTION_DESCRIPTORPPCCONNECTION_DESCRIPTOR
 
typedef struct PCPIN_DESCRIPTORPPCPIN_DESCRIPTOR
 
typedef struct PCNODE_DESCRIPTORPPCNODE_DESCRIPTOR
 
typedef struct PCFILTER_DESCRIPTORPPCFILTER_DESCRIPTOR
 
typedef IResourceList * PRESOURCELIST
 
typedef IServiceSink * PSERVICESINK
 
typedef IServiceGroup * PSERVICEGROUP
 
typedef IUnregisterSubdevice * PUNREGISTERSUBDEVICE
 
typedef IUnregisterPhysicalConnection * PUNREGISTERPHYSICALCONNECTION
 
typedef IDmaChannel * PDMACHANNEL
 
typedef IDmaChannelSlave * PDMACHANNELSLAVE
 
typedef NTSTATUS(NTAPIPINTERRUPTSYNCROUTINE) (IN struct IInterruptSync *InterruptSync, IN PVOID DynamicContext)
 
typedef IInterruptSync * PINTERRUPTSYNC
 
typedef IRegistryKey * PREGISTRYKEY
 
typedef IMusicTechnology * PMUSICTECHNOLOGY
 
typedef IPort * PPORT
 
typedef IPortMidi * PPORTMIDI
 
typedef IPortWaveCyclic * PPORTWAVECYCLIC
 
typedef IPortWavePci * PPORTWAVEPCI
 
typedef IMiniport * PMINIPORT
 
typedef IMiniportMidiStream * PMINIPORTMIDISTREAM
 
typedef IMiniportMidi * PMINIPORTMIDI
 
typedef IPortTopology * PPORTTOPOLOGY
 
typedef IMiniportTopology * PMINIPORTTOPOLOGY
 
typedef IMiniportWaveCyclicStream * PMINIPORTWAVECYCLICSTREAM
 
typedef IMiniportWaveCyclic * PMINIPORTWAVECYCLIC
 
typedef IPortWavePciStream * PPORTWAVEPCISTREAM
 
typedef IMiniportWavePciStream * PMINIPORTWAVEPCISTREAM
 
typedef IMiniportWavePci * PMINIPORTWAVEPCI
 
typedef IPortWaveRT * PPORTWAVERT
 
typedef IPortWaveRTStream * PPORTWAVERTSTREAM
 
typedef IMiniportWaveRTStream * PMINIPORTWAVERTSTREAM
 
typedef IMiniportWaveRT * PMINIPORTWAVERT
 
typedef IAdapterPowerManagement * PADAPTERPOWERMANAGEMENT
 
typedef IPowerNotify * PPOWERNOTIFY
 
typedef IPinCount * PPINCOUNT
 
typedef IPortEvents * PPORTEVENTS
 
typedef IDrmPort * PDRMPORT
 
typedef IDrmPort2 * PDRMPORT2
 
typedef IPortClsVersion * PPORTCLSVERSION
 
typedef IPreFetchOffset * PPREFETCHOFFSET
 
typedef NTSTATUS(NTAPIPCPFNSTARTDEVICE) (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PRESOURCELIST ResourceList)
 

Enumerations

enum  {
  kVersionInvalid = -1 , kVersionWin98 , kVersionWin98SE , kVersionWin2K ,
  kVersionWin98SE_QFE2 , kVersionWin2K_SP2 , kVersionWinME , kVersionWin98SE_QFE3 ,
  kVersionWinME_QFE1 , kVersionWinXP , kVersionWinXPSP1 , kVersionWinServer2003 ,
  kVersionWin2K_UAAQFE , kVersionWinXP_UAAQFE , kVersionWinServer2003_UAAQFE
}
 
enum  INTERRUPTSYNCMODE { InterruptSyncModeNormal = 1 , InterruptSyncModeAll , InterruptSyncModeRepeat }
 
enum  {
  GeneralRegistryKey , DeviceRegistryKey , DriverRegistryKey , HwProfileRegistryKey ,
  DeviceInterfaceRegistryKey
}
 

Functions

 DEFINE_GUID (CLSID_MiniportDriverFmSynth, 0xb4c90ae0L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (CLSID_MiniportDriverFmSynthWithVol, 0xe5a3c139L, 0xf0f2, 0x11d1, 0x81, 0xaf, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1)
 
 DEFINE_GUID (IID_IResourceList, 0x22C6AC60L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE)
 
 DECLARE_INTERFACE_ (IResourceList, IUnknown)
 
 DEFINE_GUID (IID_IServiceSink, 0x22C6AC64L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE)
 
 DECLARE_INTERFACE_ (IServiceSink, IUnknown)
 
 DEFINE_GUID (IID_IServiceGroup, 0x22C6AC65L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE)
 
 DECLARE_INTERFACE_ (IServiceGroup, IServiceSink)
 
 DEFINE_GUID (IID_IUnregisterSubdevice, 0x16738177L, 0xe199, 0x41f9, 0x9a, 0x87, 0xab, 0xb2, 0xa5, 0x43, 0x2f, 0x21)
 
 DECLARE_INTERFACE_ (IUnregisterSubdevice, IUnknown)
 
 DEFINE_GUID (IID_IUnregisterPhysicalConnection, 0x6c38e231L, 0x2a0d, 0x428d, 0x81, 0xf8, 0x07, 0xcc, 0x42, 0x8b, 0xb9, 0xa4)
 
 DECLARE_INTERFACE_ (IUnregisterPhysicalConnection, IUnknown)
 
 DEFINE_GUID (IID_IDmaChannel, 0x22C6AC61L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE)
 
 DECLARE_INTERFACE_ (IDmaChannel, IUnknown)
 
 DECLARE_INTERFACE_ (IDmaChannelSlave, IDmaChannel)
 
 DECLARE_INTERFACE_ (IInterruptSync, IUnknown)
 
 DEFINE_GUID (IID_IInterruptSync, 0x22C6AC63L, 0x851B, 0x11D0, 0x9A, 0x7F, 0x00, 0xAA, 0x00, 0x38, 0xAC, 0xFE)
 
 DEFINE_GUID (IID_IRegistryKey, 0xE8DA4302l, 0xF304, 0x11D0, 0x95, 0x8B, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3)
 
 DECLARE_INTERFACE_ (IRegistryKey, IUnknown)
 
 DECLARE_INTERFACE_ (IMusicTechnology, IUnknown)
 
 DEFINE_GUID (IID_IMiniport, 0xb4c90a24L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (IID_IPort, 0xb4c90a25L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IPort, IUnknown)
 
 DEFINE_GUID (IID_IPortMidi, 0xb4c90a40L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (CLSID_PortMidi, 0xb4c90a43L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IPortMidi, IPort)
 
 DEFINE_GUID (IID_IPortWaveCyclic, 0xb4c90a26L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (CLSID_PortWaveCyclic, 0xb4c90a2aL, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IPortWaveCyclic, IPort)
 
 DEFINE_GUID (IID_IPortWavePci, 0xb4c90a50L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (CLSID_PortWavePci, 0xb4c90a54L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IPortWavePci, IPort)
 
 DEFINE_GUID (IID_IMiniPort, 0xb4c90a24L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniport, IUnknown)
 
 DEFINE_GUID (IID_IMiniportMidiStream, 0xb4c90a42L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportMidiStream, IUnknown)
 
 DEFINE_GUID (IID_IMiniportMidi, 0xb4c90a41L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportMidi, IMiniport)
 
 DEFINE_GUID (IID_MiniportDriverUart, 0xb4c90ae1L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (CLSID_MiniportDriverUart, 0xb4c90ae1L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (IID_IPortTopology, 0xb4c90a30L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DEFINE_GUID (CLSID_PortTopology, 0xb4c90a32L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IPortTopology, IPort)
 
 DEFINE_GUID (IID_IMiniportTopology, 0xb4c90a31L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportTopology, IMiniport)
 
 DEFINE_GUID (IID_IMiniportWaveCyclicStream, 0xb4c90a28L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportWaveCyclicStream, IUnknown)
 
 DEFINE_GUID (IID_IMiniportWaveCyclic, 0xb4c90a27L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportWaveCyclic, IMiniport)
 
 DEFINE_GUID (IID_IPortWavePciStream, 0xb4c90a51L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IPortWavePciStream, IUnknown)
 
 DEFINE_GUID (IID_IMiniportWavePciStream, 0xb4c90a53L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportWavePciStream, IUnknown)
 
 DEFINE_GUID (IID_IMiniportWavePci, 0xb4c90a52L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44)
 
 DECLARE_INTERFACE_ (IMiniportWavePci, IMiniport)
 
 DEFINE_GUID (CLSID_PortWaveRT, 0xcc9be57a, 0xeb9e, 0x42b4, 0x94, 0xfc, 0xc, 0xad, 0x3d, 0xbc, 0xe7, 0xfa)
 
 DEFINE_GUID (IID_IPortWaveRT, 0x339ff909, 0x68a9, 0x4310, 0xb0, 0x9b, 0x27, 0x4e, 0x96, 0xee, 0x4c, 0xbd)
 
 DECLARE_INTERFACE_ (IPortWaveRT, IPort)
 
 DEFINE_GUID (IID_IPortWaveRTStream, 0x1809ce5a, 0x64bc, 0x4e62, 0xbd, 0x7d, 0x95, 0xbc, 0xe4, 0x3d, 0xe3, 0x93)
 
 DECLARE_INTERFACE_ (IPortWaveRTStream, IUnknown)
 
 DEFINE_GUID (IID_IMiniportWaveRTStream, 0xac9ab, 0xfaab, 0x4f3d, 0x94, 0x55, 0x6f, 0xf8, 0x30, 0x6a, 0x74, 0xa0)
 
 DECLARE_INTERFACE_ (IMiniportWaveRTStream, IUnknown)
 
 DEFINE_GUID (IID_IMiniportWaveRTStreamNotification, 0x23759128, 0x96f1, 0x423b, 0xab, 0x4d, 0x81, 0x63, 0x5b, 0xcf, 0x8c, 0xa1)
 
 DECLARE_INTERFACE_ (IMiniportWaveRTStreamNotification, IMiniportWaveRTStream)
 
 DEFINE_GUID (IID_IMiniportWaveRT, 0xf9fc4d6, 0x6061, 0x4f3c, 0xb1, 0xfc, 0x7, 0x5e, 0x35, 0xf7, 0x96, 0xa)
 
 DECLARE_INTERFACE_ (IMiniportWaveRT, IMiniport)
 
 DEFINE_GUID (IID_IAdapterPowerManagement, 0x793417D0L, 0x35FE, 0x11D1, 0xAD, 0x08, 0x00, 0xA0, 0xC9, 0x0A, 0xB1, 0xB0)
 
 DECLARE_INTERFACE_ (IAdapterPowerManagement, IUnknown)
 
 DEFINE_GUID (IID_IPowerNotify, 0x3DD648B8L, 0x969F, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3)
 
 DECLARE_INTERFACE_ (IPowerNotify, IUnknown)
 
 DEFINE_GUID (IID_IPinCount, 0x5dadb7dcL, 0xa2cb, 0x4540, 0xa4, 0xa8, 0x42, 0x5e, 0xe4, 0xae, 0x90, 0x51)
 
 DECLARE_INTERFACE_ (IPinCount, IUnknown)
 
 DEFINE_GUID (IID_IPortEvents, 0xA80F29C4L, 0x5498, 0x11D2, 0x95, 0xD9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3)
 
 DECLARE_INTERFACE_ (IPortEvents, IUnknown)
 
 DEFINE_GUID (IID_IDrmPort, 0x286D3DF8L, 0xCA22, 0x4E2E, 0xB9, 0xBC, 0x20, 0xB4, 0xF0, 0xE2, 0x01, 0xCE)
 
 DECLARE_INTERFACE_ (IDrmPort, IUnknown)
 
 DEFINE_GUID (IID_IDrmPort2, 0x1ACCE59CL, 0x7311, 0x4B6B, 0x9F, 0xBA, 0xCC, 0x3B, 0xA5, 0x9A, 0xCD, 0xCE)
 
 DECLARE_INTERFACE_ (IDrmPort2, IDrmPort)
 
 DEFINE_GUID (IID_IPortClsVersion, 0x7D89A7BBL, 0x869B, 0x4567, 0x8D, 0xBE, 0x1E, 0x16, 0x8C, 0xC8, 0x53, 0xDE)
 
 DECLARE_INTERFACE_ (IPortClsVersion, IUnknown)
 
 DEFINE_GUID (IID_IMusicTechnology, 0x80396C3CL, 0xCBCB, 0x409B, 0x9F, 0x65, 0x4F, 0x1E, 0x74, 0x67, 0xCD, 0xAF)
 
 DEFINE_GUID (IID_IPreFetchOffset, 0x7000f480L, 0xed44, 0x4e8b, 0xb3, 0x8a, 0x41, 0x2f, 0x8d, 0x7a, 0x50, 0x4d)
 
 DECLARE_INTERFACE_ (IPreFetchOffset, IUnknown)
 
PORTCLASSAPI NTSTATUS NTAPI PcAddAdapterDevice (IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PCPFNSTARTDEVICE StartDevice, IN ULONG MaxObjects, IN ULONG DeviceExtensionSize)
 
PORTCLASSAPI NTSTATUS NTAPI PcInitializeAdapterDriver (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPathName, IN PDRIVER_ADD_DEVICE AddDevice)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewDmaChannel (OUT PDMACHANNEL *OutDmaChannel, IN PUNKNOWN OuterUnknown OPTIONAL, IN POOL_TYPE PoolType, IN PDEVICE_DESCRIPTION DeviceDescription, IN PDEVICE_OBJECT DeviceObject)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewInterruptSync (OUT PINTERRUPTSYNC *OUtInterruptSync, IN PUNKNOWN OuterUnknown OPTIONAL, IN PRESOURCELIST ResourceList, IN ULONG ResourceIndex, IN INTERRUPTSYNCMODE Mode)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewMiniport (OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewPort (OUT PPORT *OutPort, IN REFCLSID ClassId)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewRegistryKey (OUT PREGISTRYKEY *OutRegistryKey, IN PUNKNOWN OuterUnknown OPTIONAL, IN ULONG RegistryKeyType, IN ACCESS_MASK DesiredAccess, IN PVOID DeviceObject OPTIONAL, IN PVOID SubDevice OPTIONAL, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN ULONG CreateOptions OPTIONAL, OUT PULONG Disposition OPTIONAL)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewResourceList (OUT PRESOURCELIST *OutResourceList, IN PUNKNOWN OuterUnknown OPTIONAL, IN POOL_TYPE PoolType, IN PCM_RESOURCE_LIST TranslatedResources, IN PCM_RESOURCE_LIST UntranslatedResources)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewResourceSublist (OUT PRESOURCELIST *OutResourceList, IN PUNKNOWN OuterUnknown OPTIONAL, IN POOL_TYPE PoolType, IN PRESOURCELIST ParentList, IN ULONG MaximumEntries)
 
PORTCLASSAPI NTSTATUS NTAPI PcNewServiceGroup (OUT PSERVICEGROUP *OutServiceGroup, IN PUNKNOWN OuterUnknown OPTIONAL)
 
PORTCLASSAPI NTSTATUS NTAPI PcDispatchIrp (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
PORTCLASSAPI NTSTATUS NTAPI PcCompleteIrp (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN NTSTATUS Status)
 
PORTCLASSAPI NTSTATUS NTAPI PcForwardIrpSynchronous (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
PORTCLASSAPI NTSTATUS NTAPI PcRegisterAdapterPowerManagement (IN PUNKNOWN pUnknown, IN PVOID pvContext1)
 
PORTCLASSAPI NTSTATUS NTAPI PcUnregisterAdapterPowerManagement (IN PDEVICE_OBJECT DeviceObject)
 
PORTCLASSAPI NTSTATUS NTAPI PcRequestNewPowerState (IN PDEVICE_OBJECT pDeviceObject, IN DEVICE_POWER_STATE RequestedNewState)
 
PORTCLASSAPI NTSTATUS NTAPI PcGetDeviceProperty (IN PVOID DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
 
PORTCLASSAPI NTSTATUS NTAPI PcCompletePendingPropertyRequest (IN PPCPROPERTY_REQUEST PropertyRequest, IN NTSTATUS NtStatus)
 
PORTCLASSAPI NTSTATUS NTAPI PcRegisterIoTimeout (IN PDEVICE_OBJECT pDeviceObject, IN PIO_TIMER_ROUTINE pTimerRoutine, IN PVOID pContext)
 
PORTCLASSAPI NTSTATUS NTAPI PcUnregisterIoTimeout (IN PDEVICE_OBJECT pDeviceObject, IN PIO_TIMER_ROUTINE pTimerRoutine, IN PVOID pContext)
 
PORTCLASSAPI NTSTATUS NTAPI PcRegisterPhysicalConnection (IN PDEVICE_OBJECT DeviceObject, IN PUNKNOWN FromUnknown, IN ULONG FromPin, IN PUNKNOWN ToUnknown, IN ULONG ToPin)
 
PORTCLASSAPI NTSTATUS NTAPI PcRegisterPhysicalConnectionFromExternal (IN PDEVICE_OBJECT DeviceObject, IN PUNICODE_STRING FromString, IN ULONG FromPin, IN PUNKNOWN ToUnknown, IN ULONG ToPin)
 
PORTCLASSAPI NTSTATUS NTAPI PcRegisterPhysicalConnectionToExternal (IN PDEVICE_OBJECT DeviceObject, IN PUNKNOWN FromUnknown, IN ULONG FromPin, IN PUNICODE_STRING ToString, IN ULONG ToPin)
 
PORTCLASSAPI ULONGLONG NTAPI PcGetTimeInterval (IN ULONGLONG Since)
 
PORTCLASSAPI NTSTATUS NTAPI PcRegisterSubdevice (IN PDEVICE_OBJECT DeviceObject, IN PWCHAR Name, IN PUNKNOWN Unknown)
 
PORTCLASSAPI NTSTATUS NTAPI PcAddContentHandlers (IN ULONG ContentId, IN PVOID *paHandlers, IN ULONG NumHandlers)
 
PORTCLASSAPI NTSTATUS NTAPI PcCreateContentMixed (IN PULONG paContentId, IN ULONG cContentId, OUT PULONG pMixedContentId)
 
PORTCLASSAPI NTSTATUS NTAPI PcDestroyContent (IN ULONG ContentId)
 
PORTCLASSAPI NTSTATUS NTAPI PcForwardContentToDeviceObject (IN ULONG ContentId, IN PVOID Reserved, IN PCDRMFORWARD DrmForward)
 
PORTCLASSAPI NTSTATUS NTAPI PcForwardContentToFileObject (IN ULONG ContentId, IN PFILE_OBJECT FileObject)
 
PORTCLASSAPI NTSTATUS NTAPI PcForwardContentToInterface (IN ULONG ContentId, IN PUNKNOWN pUnknown, IN ULONG NumMethods)
 
PORTCLASSAPI NTSTATUS NTAPI PcGetContentRights (IN ULONG ContentId, OUT PDRMRIGHTS DrmRights)
 

Macro Definition Documentation

◆ _100NS_UNITS_PER_SECOND

#define _100NS_UNITS_PER_SECOND   10000000L

Definition at line 159 of file portcls.h.

◆ AddAssignedResourceFromParent

#define AddAssignedResourceFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeAssignedResource, (n))

Definition at line 537 of file portcls.h.

◆ AddBusNumberFromParent

#define AddBusNumberFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeBusNumber, (n))

Definition at line 513 of file portcls.h.

◆ AddDevicePrivateFromParent

#define AddDevicePrivateFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeDevicePrivate, (n))

Definition at line 525 of file portcls.h.

◆ AddDeviceSpecificFromParent

#define AddDeviceSpecificFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeDeviceSpecific, (n))

Definition at line 501 of file portcls.h.

◆ AddDmaFromParent

#define AddDmaFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeInterrupt, (n))

Definition at line 489 of file portcls.h.

◆ AddInterruptFromParent

#define AddInterruptFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeInterrupt, (n))

Definition at line 465 of file portcls.h.

◆ AddMemoryFromParent

#define AddMemoryFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeMemory, (n))

Definition at line 477 of file portcls.h.

◆ AddPortFromParent

#define AddPortFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypePort, (n))

Definition at line 453 of file portcls.h.

◆ AddSubAllocateFromFromParent

#define AddSubAllocateFromFromParent (   p,
  n 
)     AddEntryFromParent((p), CmResourceTypeSubAllocateFrom, (n))

Definition at line 549 of file portcls.h.

◆ DEFINE_ABSTRACT_DMACHANNEL

#define DEFINE_ABSTRACT_DMACHANNEL ( )
Value:
STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
\
STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \
STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \
STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \
STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \
STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \
\
STDMETHOD_(void, SetBufferSize)( THIS_ \
\
STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
\
STDMETHOD_(void, CopyTo)( THIS_ \
\
STDMETHOD_(void, CopyFrom)( THIS_ \
LONG NTSTATUS
Definition: precomp.h:26
#define PURE
Definition: basetyps.h:64
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define BufferSize
Definition: mmc.h:75
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3004
#define DEFINE_ABSTRACT_DMACHANNEL_PhysicalAddress
Definition: portcls.h:713
#define OPTIONAL
Definition: typedefs.h:41
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
Definition: iotypes.h:1099

Definition at line 717 of file portcls.h.

◆ DEFINE_ABSTRACT_DMACHANNEL_PhysicalAddress

#define DEFINE_ABSTRACT_DMACHANNEL_PhysicalAddress    STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS ) PURE

Definition at line 713 of file portcls.h.

◆ DEFINE_ABSTRACT_DMACHANNELSLAVE

#define DEFINE_ABSTRACT_DMACHANNELSLAVE ( )
Value:
IN ULONG MapSize, \
\
STDMETHOD_(NTSTATUS, Stop)( THIS ) PURE; \
STDMETHOD_(ULONG, ReadCounter)( THIS ) PURE; \
\
STDMETHOD_(NTSTATUS, WaitForTC)( THIS_ \
ULONG Timeout) PURE;
unsigned char BOOLEAN
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
_In_opt_ PVOID _Out_ BOOLEAN * Stop
Definition: ldrtypes.h:241
static ULONG Timeout
Definition: ping.c:61
@ Start
Definition: partlist.h:33

Definition at line 791 of file portcls.h.

◆ DEFINE_ABSTRACT_DRMPORT

#define DEFINE_ABSTRACT_DRMPORT ( )
Value:
STDMETHOD_(NTSTATUS,CreateContentMixed)(THIS_ \
IN PULONG paContentId, \
\
STDMETHOD_(NTSTATUS,DestroyContent)(THIS_ \
IN ULONG ContentId)PURE; \
\
STDMETHOD_(NTSTATUS,ForwardContentToFileObject)(THIS_ \
IN ULONG ContentId, \
\
STDMETHOD_(NTSTATUS,ForwardContentToInterface)(THIS_ \
IN ULONG ContentId, \
\
STDMETHOD_(NTSTATUS,GetContentRights)(THIS_ \
IN ULONG ContentId, \
_In_ ULONG cContentId
Definition: drmk.h:48
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
_Out_ PDRMRIGHTS DrmRights
Definition: drmk.h:84
_In_ ULONG _Out_ PULONG pMixedContentId
Definition: drmk.h:49
@ NumMethods
Definition: actctx.c:1556
Definition: drmk.h:18
uint32_t * PULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
* PFILE_OBJECT
Definition: iotypes.h:1998

Definition at line 2148 of file portcls.h.

◆ DEFINE_ABSTRACT_MINIPORT

#define DEFINE_ABSTRACT_MINIPORT ( )
Value:
STDMETHOD_(NTSTATUS, GetDescription)( THIS_ \
\
STDMETHOD_(NTSTATUS, DataRangeIntersection)( THIS_ \
IN ULONG PinId, \
IN PKSDATARANGE DataRange, \
IN PKSDATARANGE MatchingDataRange, \
OUT PVOID ResultantFormat OPTIONAL, \
OUT PULONG ResultantFormatLength) PURE;
static const WCHAR Description[]
Definition: oid.c:1266
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320

Definition at line 1279 of file portcls.h.

◆ DEFINE_ABSTRACT_MINIPORTWAVERTSTREAM

#define DEFINE_ABSTRACT_MINIPORTWAVERTSTREAM ( )

Definition at line 1721 of file portcls.h.

◆ DEFINE_ABSTRACT_PORT

#define DEFINE_ABSTRACT_PORT ( )
Value:
IN PIRP Irp, \
IN PUNKNOWN UnknownMiniport, \
IN PUNKNOWN UnknownAdapter OPTIONAL, \
\
STDMETHOD_(NTSTATUS, GetDeviceProperty)( THIS_ \
\
STDMETHOD_(NTSTATUS, NewRegistryKey)( THIS_ \
OUT PREGISTRYKEY* OutRegistryKey, \
IN PUNKNOWN OuterUnknown OPTIONAL, \
IN ULONG RegistryKeyType, \
IN ULONG CreateOptiona OPTIONAL, \
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
_In_ PIRP Irp
Definition: csq.h:116
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
Definition: cmfuncs.h:56
ULONG ACCESS_MASK
Definition: nt_native.h:40
IRegistryKey * PREGISTRYKEY
Definition: portcls.h:1009
IResourceList * PRESOURCELIST
Definition: portcls.h:442
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdfdevice.h:4437
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3769
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194

Definition at line 1047 of file portcls.h.

◆ DEFINE_PCAUTOMATION_TABLE_PROP

#define DEFINE_PCAUTOMATION_TABLE_PROP (   AutomationTable,
  PropertyTable 
)
Value:
const PCAUTOMATION_TABLE AutomationTable = { \
sizeof(PropertyTable[0]), \
SIZEOF_ARRAY(PropertyTable), \
(const PCPROPERTY_ITEM *) PropertyTable, \
0,0,NULL, \
0,0,NULL, \
0 \
}
#define NULL
Definition: types.h:112

Definition at line 368 of file portcls.h.

◆ FindTranslatedAssignedResource

#define FindTranslatedAssignedResource (   n)     FindTranslatedEntry(CmResourceTypeAssignedResource, (n))

Definition at line 531 of file portcls.h.

◆ FindTranslatedBusNumber

#define FindTranslatedBusNumber (   n)     FindTranslatedEntry(CmResourceTypeBusNumber, (n))

Definition at line 507 of file portcls.h.

◆ FindTranslatedDevicePrivate

#define FindTranslatedDevicePrivate (   n)     FindTranslatedEntry(CmResourceTypeDevicePrivate, (n))

Definition at line 519 of file portcls.h.

◆ FindTranslatedDeviceSpecific

#define FindTranslatedDeviceSpecific (   n)     FindTranslatedEntry(CmResourceTypeDeviceSpecific, (n))

Definition at line 495 of file portcls.h.

◆ FindTranslatedDma

#define FindTranslatedDma (   n)     FindTranslatedEntry(CmResourceTypeDma, (n))

Definition at line 483 of file portcls.h.

◆ FindTranslatedInterrupt

#define FindTranslatedInterrupt (   n)     FindTranslatedEntry(CmResourceTypeInterrupt, (n))

Definition at line 459 of file portcls.h.

◆ FindTranslatedMemory

#define FindTranslatedMemory (   n)     FindTranslatedEntry(CmResourceTypeMemory, (n))

Definition at line 471 of file portcls.h.

◆ FindTranslatedPort

#define FindTranslatedPort (   n)     FindTranslatedEntry(CmResourceTypePort, (n))

Definition at line 447 of file portcls.h.

◆ FindTranslatedSubAllocateFrom

#define FindTranslatedSubAllocateFrom (   n)     FindTranslatedEntry(CmResourceTypeSubAllocateFrom, (n))

Definition at line 543 of file portcls.h.

◆ FindUntranslatedAssignedResource

#define FindUntranslatedAssignedResource (   n)     FindUntranslatedEntry(CmResourceTypeAssignedResource, (n))

Definition at line 534 of file portcls.h.

◆ FindUntranslatedBusNumber

#define FindUntranslatedBusNumber (   n)     FindUntranslatedEntry(CmResourceTypeBusNumber, (n))

Definition at line 510 of file portcls.h.

◆ FindUntranslatedDevicePrivate

#define FindUntranslatedDevicePrivate (   n)     FindUntranslatedEntry(CmResourceTypeDevicePrivate, (n))

Definition at line 522 of file portcls.h.

◆ FindUntranslatedDeviceSpecific

#define FindUntranslatedDeviceSpecific (   n)     FindUntranslatedEntry(CmResourceTypeDeviceSpecific, (n))

Definition at line 498 of file portcls.h.

◆ FindUntranslatedDma

#define FindUntranslatedDma (   n)     FindUntranslatedEntry(CmResourceTypeDma, (n))

Definition at line 486 of file portcls.h.

◆ FindUntranslatedInterrupt

#define FindUntranslatedInterrupt (   n)     FindUntranslatedEntry(CmResourceTypeInterrupt, (n))

Definition at line 462 of file portcls.h.

◆ FindUntranslatedMemory

#define FindUntranslatedMemory (   n)     FindUntranslatedEntry(CmResourceTypeMemory, (n))

Definition at line 474 of file portcls.h.

◆ FindUntranslatedPort

#define FindUntranslatedPort (   n)     FindUntranslatedEntry(CmResourceTypePort, (n))

Definition at line 450 of file portcls.h.

◆ FindUntranslatedSubAllocateFrom

#define FindUntranslatedSubAllocateFrom (   n)     FindUntranslatedEntry(CmResourceTypeSubAllocateFrom, (n))

Definition at line 546 of file portcls.h.

◆ GTI_MICROSECONDS

#define GTI_MICROSECONDS (   t)    (ULONGLONG(t)*10)

Definition at line 2503 of file portcls.h.

◆ GTI_MILLISECONDS

#define GTI_MILLISECONDS (   t)    (ULONGLONG(t)*10000)

Definition at line 2502 of file portcls.h.

◆ GTI_SECONDS

#define GTI_SECONDS (   t)    (ULONGLONG(t)*10000000)

Definition at line 2501 of file portcls.h.

◆ IMP_IAdapterPowerManagement

#define IMP_IAdapterPowerManagement
Value:
STDMETHODIMP_(void) PowerChangeState \
( IN POWER_STATE NewState \
); \
STDMETHODIMP_(NTSTATUS) QueryPowerChangeState \
( IN POWER_STATE NewStateQuery \
); \
STDMETHODIMP_(NTSTATUS) QueryDeviceCapabilities \
( IN PDEVICE_CAPABILITIES PowerDeviceCaps \
)
#define STDMETHODIMP_(t)
Definition: basetyps.h:44
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965

Definition at line 2028 of file portcls.h.

◆ IMP_IDmaChannel

#define IMP_IDmaChannel
Value:
STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
\
STDMETHODIMP_(void) FreeBuffer(void); \
STDMETHODIMP_(ULONG) TransferCount(void); \
STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
STDMETHODIMP_(ULONG) BufferSize(void); \
\
STDMETHODIMP_(void) SetBufferSize( \
\
STDMETHODIMP_(PVOID) SystemAddress(void); \
STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(void); \
STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
\
STDMETHODIMP_(void) CopyTo( \
\
STDMETHODIMP_(void) CopyFrom( \
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1098

Definition at line 745 of file portcls.h.

◆ IMP_IDmaChannelSlave

#define IMP_IDmaChannelSlave
Value:
STDMETHODIMP_(NTSTATUS) Start( \
IN ULONG MapSize, \
\
STDMETHODIMP_(NTSTATUS) Stop(void); \
STDMETHODIMP_(ULONG) ReadCounter(void); \
\
STDMETHODIMP_(NTSTATUS) WaitForTC( \
#define IMP_IDmaChannel
Definition: portcls.h:745

Definition at line 802 of file portcls.h.

◆ IMP_IDrmPort

#define IMP_IDrmPort
Value:
STDMETHODIMP_(NTSTATUS) CreateContentMixed( \
IN PULONG paContentId, \
\
STDMETHODIMP_(NTSTATUS) DestroyContent( \
IN ULONG ContentId); \
\
STDMETHODIMP_(NTSTATUS) ForwardContentToFileObject( \
IN ULONG ContentId, \
\
STDMETHODIMP_(NTSTATUS) ForwardContentToInterface( \
IN ULONG ContentId, \
\
STDMETHODIMP_(NTSTATUS) GetContentRights( \
IN ULONG ContentId, \

Definition at line 2178 of file portcls.h.

◆ IMP_IDrmPort2

#define IMP_IDrmPort2
Value:
STDMETHODIMP_(NTSTATUS) AddContentHandlers( \
IN ULONG ContentId, \
IN PVOID * paHandlers, \
\
STDMETHODIMP_(NTSTATUS) ForwardContentToDeviceObject( \
IN ULONG ContentId, \
IN PCDRMFORWARD DrmForward)
_In_ ULONG NumHandlers
Definition: drmk.h:41
#define IMP_IDrmPort
Definition: portcls.h:2178
_Reserved_ PVOID Reserved
Definition: winddi.h:3974

Definition at line 2230 of file portcls.h.

◆ IMP_IInterruptSync

#define IMP_IInterruptSync
Value:
STDMETHODIMP_(NTSTATUS) CallSynchronizedRoutine( \
IN PVOID DynamicContext); \
\
STDMETHODIMP_(PKINTERRUPT) GetKInterrupt(void); \
STDMETHODIMP_(NTSTATUS) Connect(void); \
STDMETHODIMP_(void) Disconnect(void); \
\
STDMETHODIMP_(NTSTATUS) RegisterServiceRoutine( \
IN PVOID DynamicContext, \
WCHAR First[]
Definition: FormatMessage.c:11
_In_ PKSPIN_CONNECT Connect
Definition: ks.h:4536
NTSTATUS(NTAPI * PINTERRUPTSYNCROUTINE)(IN struct IInterruptSync *InterruptSync, IN PVOID DynamicContext)
Definition: portcls.h:847

Definition at line 874 of file portcls.h.

◆ IMP_IMiniport

#define IMP_IMiniport
Value:
STDMETHODIMP_(NTSTATUS) GetDescription( \
\
STDMETHODIMP_(NTSTATUS) DataRangeIntersection( \
IN ULONG PinId, \
IN PKSDATARANGE DataRange, \
IN PKSDATARANGE MatchingDataRange, \
OUT PVOID ResultantFormat OPTIONAL, \
OUT PULONG ResultantFormatLength)

Definition at line 1291 of file portcls.h.

◆ IMP_IMiniportTopology

#define IMP_IMiniportTopology
Value:
STDMETHODIMP_(NTSTATUS) Init(\
IN PUNKNOWN UnknownAdapter,\
CPPORT Port[4]
Definition: headless.c:35
#define IMP_IMiniport
Definition: portcls.h:1291
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1415

Definition at line 1445 of file portcls.h.

◆ IMP_IMiniportWaveCyclic

#define IMP_IMiniportWaveCyclic
Value:
STDMETHODIMP_(NTSTATUS) Init\
( IN PUNKNOWN UnknownAdapter,\
);\
STDMETHODIMP_(NTSTATUS) NewStream\
IN PUNKNOWN OuterUnknown OPTIONAL,\
OUT PDMACHANNEL * DmaChannel,\
OUT PSERVICEGROUP * ServiceGroup\
)
struct _Capture Capture
Definition: capture.h:24
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:427
static IStream Stream
Definition: htmldoc.c:1115
IDmaChannel * PDMACHANNEL
Definition: portcls.h:784
IMiniportWaveCyclicStream * PMINIPORTWAVECYCLICSTREAM
Definition: portcls.h:1487
IPortWaveCyclic * PPORTWAVECYCLIC
Definition: portcls.h:1184
IServiceGroup * PSERVICEGROUP
Definition: portcls.h:614
INT POOL_TYPE
Definition: typedefs.h:78
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815

Definition at line 1546 of file portcls.h.

◆ IMP_IMiniportWaveCyclicStream

#define IMP_IMiniportWaveCyclicStream
Value:
STDMETHODIMP_(NTSTATUS) SetFormat\
);\
STDMETHODIMP_(ULONG) SetNotificationFreq\
OUT PULONG FrameSize\
);\
STDMETHODIMP_(NTSTATUS) SetState\
);\
STDMETHODIMP_(NTSTATUS) GetPosition\
);\
STDMETHODIMP_(NTSTATUS) NormalizePhysicalPosition\
( IN OUT PLONGLONG PhysicalPosition\
);\
STDMETHODIMP_(void) Silence\
)
Definition: bufpool.h:45
KSSTATE
Definition: ks.h:1214
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
DWORD Interval
Definition: netstat.c:30
__GNU_EXTENSION typedef __int64 * PLONGLONG
Definition: ntbasedef.h:382
static COORD Position
Definition: mouse.c:34

Definition at line 1489 of file portcls.h.

◆ IMP_IMiniportWavePci

#define IMP_IMiniportWavePci
Value:
STDMETHODIMP_(NTSTATUS) Init(\
IN PUNKNOWN UnknownAdapter,\
OUT PSERVICEGROUP * ServiceGroup);\
STDMETHODIMP_(NTSTATUS) NewStream(\
IN PUNKNOWN OuterUnknown ,\
IN PPORTWAVEPCISTREAM PortStream,\
OUT PDMACHANNEL * DmaChannel,\
OUT PSERVICEGROUP * ServiceGroup);\
STDMETHODIMP_(void) Service(void);
@ Service
Definition: ntsecapi.h:292
IMiniportWavePciStream * PMINIPORTWAVEPCISTREAM
Definition: portcls.h:1643
IPortWavePciStream * PPORTWAVEPCISTREAM
Definition: portcls.h:1590
IPortWavePci * PPORTWAVEPCI
Definition: portcls.h:1248

Definition at line 1699 of file portcls.h.

◆ IMP_IMiniportWavePciStream

#define IMP_IMiniportWavePciStream
Value:
STDMETHODIMP_(NTSTATUS) SetFormat(\
STDMETHODIMP_(NTSTATUS) SetState(\
STDMETHODIMP_(NTSTATUS) GetPosition(\
STDMETHODIMP_(NTSTATUS) NormalizePhysicalPosition(\
IN OUT PLONGLONG PhysicalPosition);\
STDMETHODIMP_(NTSTATUS) GetAllocatorFraming(\
STDMETHODIMP_(NTSTATUS) RevokeMappings(\
IN PVOID FirstTag,\
IN PVOID LastTag,\
OUT PULONG MappingsRevoked);\
STDMETHODIMP_(void) MappingAvailable(void);\
STDMETHODIMP_(void) Service(void);
_In_ PKSALLOCATOR_FRAMING AllocatorFraming
Definition: ks.h:4518
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:383

Definition at line 1645 of file portcls.h.

◆ IMP_IMiniportWaveRT

#define IMP_IMiniportWaveRT
Value:
STDMETHODIMP_(NTSTATUS) Init\
( IN PUNKNOWN UnknownAdapter,\
);\
STDMETHODIMP_(NTSTATUS) NewStream\
IN PPORTWAVERTSTREAM PortStream,\
);\
STDMETHODIMP_(NTSTATUS) GetDeviceDescription\
)
IPortWaveRT * PPORTWAVERT
Definition: interfaces.hpp:681
IMiniportWaveRTStream * PMINIPORTWAVERTSTREAM
Definition: portcls.h:1865
IPortWaveRTStream * PPORTWAVERTSTREAM
Definition: portcls.h:1847
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432

Definition at line 1985 of file portcls.h.

◆ IMP_IMiniportWaveRTStream

#define IMP_IMiniportWaveRTStream

Definition at line 1867 of file portcls.h.

◆ IMP_IMusicTechnology

#define IMP_IMusicTechnology
Value:
STDMETHODIMP_(NTSTATUS) SetTechnology( \
IN const GUID* Technology);

Definition at line 1024 of file portcls.h.

◆ IMP_IPortClsVersion

#define IMP_IPortClsVersion    STDMETHODIMP_(DWORD) GetVersion(void);

Definition at line 2260 of file portcls.h.

◆ IMP_IPortEvents

#define IMP_IPortEvents
Value:
STDMETHODIMP_(void) AddEventToEventList( \
IN PKSEVENT_ENTRY EventEntry); \
\
STDMETHODIMP_(void) GenerateEventList( \
IN ULONG EventId, \
IN BOOL PinEvent, \
IN ULONG PinId, \
IN BOOL NodeEvent, \
IN ULONG NodeId)
unsigned int BOOL
Definition: ntddk_ex.h:94
struct _KSEVENT_ENTRY * PKSEVENT_ENTRY
Definition: ks.h:2101
static BOOL Set
Definition: pageheap.c:10

Definition at line 2124 of file portcls.h.

◆ IMP_IPortMidi

#define IMP_IPortMidi ( )
Value:
IN PSERVICEGROUP ServiceGroup OPTIONAL); \
\
STDMETHODIMP_(NTSTATUS) RegisterServiceGroup( \
IN PSERVICEGROUP ServiceGroup);
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)

Definition at line 1134 of file portcls.h.

◆ IMP_IPortTopology

#define IMP_IPortTopology   IMP_IPort

Definition at line 1417 of file portcls.h.

◆ IMP_IPortWavePciStream

#define IMP_IPortWavePciStream
Value:
STDMETHODIMP_(NTSTATUS) GetMapping( \
\
STDMETHODIMP_(NTSTATUS) ReleaseMapping( \
IN PVOID Tag); \
\
STDMETHODIMP_(NTSTATUS) TerminatePacket(THIS)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Definition at line 1592 of file portcls.h.

◆ IMP_IPowerNotify

#define IMP_IPowerNotify
Value:
STDMETHODIMP_(void) PowerChangeNotify\
)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
Definition: wdfdevice.h:3034

Definition at line 2061 of file portcls.h.

◆ IMP_IPreFetchOffset

#define IMP_IPreFetchOffset    STDMETHODIMP_(DWORD) SetPreFetchOffset(IN ULONG PreFetchOffset);

Definition at line 2294 of file portcls.h.

◆ IMP_IRegistryKey

#define IMP_IRegistryKey

Definition at line 961 of file portcls.h.

◆ IMP_IResourceList

#define IMP_IResourceList
Value:
STDMETHODIMP_(ULONG) NumberOfEntries(void); \
\
STDMETHODIMP_(ULONG) NumberOfEntriesOfType( \
IN CM_RESOURCE_TYPE Type); \
\
STDMETHODIMP_(PCM_PARTIAL_RESOURCE_DESCRIPTOR) FindTranslatedEntry( \
IN CM_RESOURCE_TYPE Type, \
\
STDMETHODIMP_(PCM_PARTIAL_RESOURCE_DESCRIPTOR) FindUntranslatedEntry( \
IN CM_RESOURCE_TYPE Type, \
\
STDMETHODIMP_(NTSTATUS) AddEntry( \
\
STDMETHODIMP_(NTSTATUS) AddEntryFromParent( \
IN IResourceList* Parent, \
IN CM_RESOURCE_TYPE Type, \
\
STDMETHODIMP_(PCM_RESOURCE_LIST) TranslatedList(void); \
STDMETHODIMP_(PCM_RESOURCE_LIST) UntranslatedList(void);
Type
Definition: Type.h:7
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:732
_In_ WDFCOLLECTION _In_ ULONG Index

Definition at line 416 of file portcls.h.

◆ IMP_IServiceGroup

#define IMP_IServiceGroup
Value:
\
STDMETHODIMP_(NTSTATUS) AddMember( \
IN PSERVICESINK pServiceSink); \
\
STDMETHODIMP_(void) RemoveMember( \
IN PSERVICESINK pServiceSink); \
\
STDMETHODIMP_(void) SupportDelayedService(void); \
\
STDMETHODIMP_(void) RequestDelayedService( \
IN ULONGLONG ullDelay); \
\
STDMETHODIMP_(void) CancelDelayedService(void);
IServiceSink * PSERVICESINK
Definition: portcls.h:569
#define IMP_IServiceSink
Definition: portcls.h:566
uint64_t ULONGLONG
Definition: typedefs.h:67

Definition at line 598 of file portcls.h.

◆ IMP_IServiceSink

#define IMP_IServiceSink    STDMETHODIMP_(void) RequestService(void);

Definition at line 566 of file portcls.h.

◆ IMP_IUnregisterPhysicalConnection

#define IMP_IUnregisterPhysicalConnection
Value:
STDMETHODIMP_(NTSTATUS) UnregisterPhysicalConnection( \
IN PUNKNOWN FromUnknown, \
IN ULONG FromPin, \
IN PUNKNOWN ToUnknown, \
IN ULONG ToPin); \
\
STDMETHODIMP_(NTSTATUS) UnregisterPhysicalConnectionToExternal( \
IN PUNKNOWN FromUnknown, \
IN ULONG FromPin, \
IN ULONG ToPin); \
\
STDMETHODIMP_(NTSTATUS) UnregisterPhysicalConnectionFromExternal( \
IN PUNICODE_STRING FromString, \
IN ULONG FromPin, \
IN PUNKNOWN ToUnknown, \
IN ULONG ToPin)
std::string ToString(XMLHandle node)
Definition: xml2sdb.cpp:59

Definition at line 680 of file portcls.h.

◆ IMP_IUnregisterSubdevice

#define IMP_IUnregisterSubdevice
Value:
STDMETHODIMP_(NTSTATUS) UnregisterSubdevice(THIS_ \
#define THIS_
Definition: basetyps.h:65
@ Unknown
Definition: i8042prt.h:114

Definition at line 637 of file portcls.h.

◆ INTERFACE [1/38]

#define INTERFACE   IResourceList

Definition at line 2280 of file portcls.h.

◆ INTERFACE [2/38]

#define INTERFACE   IServiceSink

Definition at line 2280 of file portcls.h.

◆ INTERFACE [3/38]

#define INTERFACE   IServiceGroup

Definition at line 2280 of file portcls.h.

◆ INTERFACE [4/38]

#define INTERFACE   IUnregisterSubdevice

Definition at line 2280 of file portcls.h.

◆ INTERFACE [5/38]

#define INTERFACE   IUnregisterPhysicalConnection

Definition at line 2280 of file portcls.h.

◆ INTERFACE [6/38]

#define INTERFACE   IDmaChannel

Definition at line 2280 of file portcls.h.

◆ INTERFACE [7/38]

#define INTERFACE   IDmaChannelSlave

Definition at line 2280 of file portcls.h.

◆ INTERFACE [8/38]

#define INTERFACE   IDmaChannelSlave

Definition at line 2280 of file portcls.h.

◆ INTERFACE [9/38]

#define INTERFACE   IInterruptSync

Definition at line 2280 of file portcls.h.

◆ INTERFACE [10/38]

#define INTERFACE   IRegistryKey

Definition at line 2280 of file portcls.h.

◆ INTERFACE [11/38]

#define INTERFACE   IPort

Definition at line 2280 of file portcls.h.

◆ INTERFACE [12/38]

#define INTERFACE   IPortMidi

Definition at line 2280 of file portcls.h.

◆ INTERFACE [13/38]

#define INTERFACE   IPortWaveCyclic

Definition at line 2280 of file portcls.h.

◆ INTERFACE [14/38]

#define INTERFACE   IPortWavePci

Definition at line 2280 of file portcls.h.

◆ INTERFACE [15/38]

#define INTERFACE   IMiniportMidiStream

Definition at line 2280 of file portcls.h.

◆ INTERFACE [16/38]

#define INTERFACE   IMiniportMidi

Definition at line 2280 of file portcls.h.

◆ INTERFACE [17/38]

#define INTERFACE   IPortTopology

Definition at line 2280 of file portcls.h.

◆ INTERFACE [18/38]

#define INTERFACE   IPortTopology

Definition at line 2280 of file portcls.h.

◆ INTERFACE [19/38]

#define INTERFACE   IMiniportTopology

Definition at line 2280 of file portcls.h.

◆ INTERFACE [20/38]

#define INTERFACE   IMiniportTopology

Definition at line 2280 of file portcls.h.

◆ INTERFACE [21/38]

#define INTERFACE   IMiniportWaveCyclicStream

Definition at line 2280 of file portcls.h.

◆ INTERFACE [22/38]

#define INTERFACE   IMiniportWaveCyclic

Definition at line 2280 of file portcls.h.

◆ INTERFACE [23/38]

#define INTERFACE   IPortWavePciStream

Definition at line 2280 of file portcls.h.

◆ INTERFACE [24/38]

#define INTERFACE   IMiniportWavePciStream

Definition at line 2280 of file portcls.h.

◆ INTERFACE [25/38]

#define INTERFACE   IMiniportWavePci

Definition at line 2280 of file portcls.h.

◆ INTERFACE [26/38]

#define INTERFACE   IPortWaveRT

Definition at line 2280 of file portcls.h.

◆ INTERFACE [27/38]

#define INTERFACE   IPortWaveRTStream

Definition at line 2280 of file portcls.h.

◆ INTERFACE [28/38]

#define INTERFACE   IMiniportWaveRTStream

Definition at line 2280 of file portcls.h.

◆ INTERFACE [29/38]

#define INTERFACE   IMiniportWaveRTStreamNotification

Definition at line 2280 of file portcls.h.

◆ INTERFACE [30/38]

#define INTERFACE   IMiniportWaveRT

Definition at line 2280 of file portcls.h.

◆ INTERFACE [31/38]

#define INTERFACE   IAdapterPowerManagement

Definition at line 2280 of file portcls.h.

◆ INTERFACE [32/38]

#define INTERFACE   IPowerNotify

Definition at line 2280 of file portcls.h.

◆ INTERFACE [33/38]

#define INTERFACE   IPinCount

Definition at line 2280 of file portcls.h.

◆ INTERFACE [34/38]

#define INTERFACE   IPortEvents

Definition at line 2280 of file portcls.h.

◆ INTERFACE [35/38]

#define INTERFACE   IDrmPort

Definition at line 2280 of file portcls.h.

◆ INTERFACE [36/38]

#define INTERFACE   IDrmPort2

Definition at line 2280 of file portcls.h.

◆ INTERFACE [37/38]

#define INTERFACE   IPortClsVersion

Definition at line 2280 of file portcls.h.

◆ INTERFACE [38/38]

#define INTERFACE   IPreFetchOffset

Definition at line 2280 of file portcls.h.

◆ NOBITMAP

#define NOBITMAP

Definition at line 138 of file portcls.h.

◆ NumberOfAssignedResources

#define NumberOfAssignedResources ( )     NumberOfEntriesOfType(CmResourceTypeAssignedResource)

Definition at line 528 of file portcls.h.

◆ NumberOfBusNumbers

#define NumberOfBusNumbers ( )     NumberOfEntriesOfType(CmResourceTypeBusNumber)

Definition at line 504 of file portcls.h.

◆ NumberOfDevicePrivates

#define NumberOfDevicePrivates ( )     NumberOfEntriesOfType(CmResourceTypeDevicePrivate)

Definition at line 516 of file portcls.h.

◆ NumberOfDeviceSpecifics

#define NumberOfDeviceSpecifics ( )     NumberOfEntriesOfType(CmResourceTypeDeviceSpecific)

Definition at line 492 of file portcls.h.

◆ NumberOfDmas

#define NumberOfDmas ( )     NumberOfEntriesOfType(CmResourceTypeDma)

Definition at line 480 of file portcls.h.

◆ NumberOfInterrupts

#define NumberOfInterrupts ( )     NumberOfEntriesOfType(CmResourceTypeInterrupt)

Definition at line 456 of file portcls.h.

◆ NumberOfMemories

#define NumberOfMemories ( )     NumberOfEntriesOfType(CmResourceTypeMemory)

Definition at line 468 of file portcls.h.

◆ NumberOfPorts

◆ NumberOfSubAllocateFroms

#define NumberOfSubAllocateFroms ( )     NumberOfEntriesOfType(CmResourceTypeSubAllocateFrom)

Definition at line 540 of file portcls.h.

◆ PCEVENT_ITEM_FLAG_BASICSUPPORT

#define PCEVENT_ITEM_FLAG_BASICSUPPORT   KSEVENT_TYPE_BASICSUPPORT

Definition at line 171 of file portcls.h.

◆ PCEVENT_ITEM_FLAG_ENABLE

#define PCEVENT_ITEM_FLAG_ENABLE   KSEVENT_TYPE_ENABLE

Definition at line 169 of file portcls.h.

◆ PCEVENT_ITEM_FLAG_ONESHOT

#define PCEVENT_ITEM_FLAG_ONESHOT   KSEVENT_TYPE_ONESHOT

Definition at line 170 of file portcls.h.

◆ PCEVENT_VERB_ADD

#define PCEVENT_VERB_ADD   1

Definition at line 178 of file portcls.h.

◆ PCEVENT_VERB_NONE

#define PCEVENT_VERB_NONE   0

Definition at line 177 of file portcls.h.

◆ PCEVENT_VERB_REMOVE

#define PCEVENT_VERB_REMOVE   2

Definition at line 179 of file portcls.h.

◆ PCEVENT_VERB_SUPPORT

#define PCEVENT_VERB_SUPPORT   4

Definition at line 180 of file portcls.h.

◆ PCFILTER_NODE

#define PCFILTER_NODE   ((ULONG) -1)

Definition at line 154 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_BASICSUPPORT

#define PCMETHOD_ITEM_FLAG_BASICSUPPORT   KSMETHOD_TYPE_BASICSUPPORT

Definition at line 196 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_MODIFY

#define PCMETHOD_ITEM_FLAG_MODIFY   KSMETHOD_TYPE_MODIFY

Definition at line 189 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_NONE

#define PCMETHOD_ITEM_FLAG_NONE   KSMETHOD_TYPE_NONE

Definition at line 186 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_READ

#define PCMETHOD_ITEM_FLAG_READ   KSMETHOD_TYPE_READ

Definition at line 187 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_SEND

#define PCMETHOD_ITEM_FLAG_SEND

Definition at line 197 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_SETSUPPORT

#define PCMETHOD_ITEM_FLAG_SETSUPPORT

Definition at line 198 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_SOURCE

#define PCMETHOD_ITEM_FLAG_SOURCE   KSMETHOD_TYPE_SOURCE

Definition at line 190 of file portcls.h.

◆ PCMETHOD_ITEM_FLAG_WRITE

#define PCMETHOD_ITEM_FLAG_WRITE   KSMETHOD_TYPE_WRITE

Definition at line 188 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_BASICSUPPORT

#define PCPROPERTY_ITEM_FLAG_BASICSUPPORT   KSPROPERTY_TYPE_BASICSUPPORT

Definition at line 242 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_DEFAULTVALUES

#define PCPROPERTY_ITEM_FLAG_DEFAULTVALUES   KSPROPERTY_TYPE_DEFAULTVALUES

Definition at line 252 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_GET

#define PCPROPERTY_ITEM_FLAG_GET   KSPROPERTY_TYPE_GET

Definition at line 240 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_SERIALIZE

#define PCPROPERTY_ITEM_FLAG_SERIALIZE
Value:
)
#define PCPROPERTY_ITEM_FLAG_SERIALIZESIZE
Definition: portcls.h:246
#define PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW
Definition: portcls.h:245
#define PCPROPERTY_ITEM_FLAG_SERIALIZERAW
Definition: portcls.h:244

Definition at line 247 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_SERIALIZERAW

#define PCPROPERTY_ITEM_FLAG_SERIALIZERAW   KSPROPERTY_TYPE_SERIALIZERAW

Definition at line 244 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_SERIALIZESIZE

#define PCPROPERTY_ITEM_FLAG_SERIALIZESIZE   KSPROPERTY_TYPE_SERIALIZESIZE

Definition at line 246 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_SET

#define PCPROPERTY_ITEM_FLAG_SET   KSPROPERTY_TYPE_SET

Definition at line 241 of file portcls.h.

◆ PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW

#define PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW   KSPROPERTY_TYPE_UNSERIALIZERAW

Definition at line 245 of file portcls.h.

◆ PORT_CLASS_DEVICE_EXTENSION_SIZE

#define PORT_CLASS_DEVICE_EXTENSION_SIZE   ( 64 * sizeof(ULONG_PTR) )

Definition at line 160 of file portcls.h.

◆ PORTCLASSAPI

#define PORTCLASSAPI   EXTERN_C __declspec(dllimport)

Definition at line 148 of file portcls.h.

Typedef Documentation

◆ PADAPTERPOWERMANAGEMENT

typedef IAdapterPowerManagement* PADAPTERPOWERMANAGEMENT

Definition at line 2039 of file portcls.h.

◆ PCEVENT_ITEM

◆ PCEVENT_REQUEST

◆ PCMETHOD_ITEM

◆ PCMETHOD_REQUEST

◆ PCPFNEVENT_HANDLER

typedef NTSTATUS(NTAPI * PCPFNEVENT_HANDLER) (IN struct _PCEVENT_REQUEST *EventRequest)

Definition at line 272 of file portcls.h.

◆ PCPFNMETHOD_HANDLER

typedef NTSTATUS(NTAPI * PCPFNMETHOD_HANDLER) (IN struct _PCMETHOD_REQUEST *MethodRequest)

Definition at line 295 of file portcls.h.

◆ PCPFNPROPERTY_HANDLER

typedef NTSTATUS(NTAPI * PCPFNPROPERTY_HANDLER) (IN PPCPROPERTY_REQUEST PropertyRequest)

Definition at line 232 of file portcls.h.

◆ PCPFNSTARTDEVICE

Definition at line 2303 of file portcls.h.

◆ PCPROPERTY_REQUEST

Definition at line 230 of file portcls.h.

◆ PDMACHANNEL

typedef IDmaChannel* PDMACHANNEL

Definition at line 784 of file portcls.h.

◆ PDMACHANNELSLAVE

typedef IDmaChannelSlave* PDMACHANNELSLAVE

Definition at line 831 of file portcls.h.

◆ PDRMPORT

typedef IDrmPort* PDRMPORT

Definition at line 2176 of file portcls.h.

◆ PDRMPORT2

typedef IDrmPort2* PDRMPORT2

Definition at line 2228 of file portcls.h.

◆ PINTERRUPTSYNC

typedef IInterruptSync* PINTERRUPTSYNC

Definition at line 888 of file portcls.h.

◆ PINTERRUPTSYNCROUTINE

typedef NTSTATUS(NTAPI * PINTERRUPTSYNCROUTINE) (IN struct IInterruptSync *InterruptSync, IN PVOID DynamicContext)

Definition at line 847 of file portcls.h.

◆ PMINIPORT

typedef IMiniport* PMINIPORT

Definition at line 1309 of file portcls.h.

◆ PMINIPORTMIDI

typedef IMiniportMidi* PMINIPORTMIDI

Definition at line 1378 of file portcls.h.

◆ PMINIPORTMIDISTREAM

typedef IMiniportMidiStream* PMINIPORTMIDISTREAM

Definition at line 1342 of file portcls.h.

◆ PMINIPORTTOPOLOGY

typedef IMiniportTopology* PMINIPORTTOPOLOGY

Definition at line 1443 of file portcls.h.

◆ PMINIPORTWAVECYCLIC

typedef IMiniportWaveCyclic* PMINIPORTWAVECYCLIC

Definition at line 1543 of file portcls.h.

◆ PMINIPORTWAVECYCLICSTREAM

typedef IMiniportWaveCyclicStream* PMINIPORTWAVECYCLICSTREAM

Definition at line 1487 of file portcls.h.

◆ PMINIPORTWAVEPCI

typedef IMiniportWavePci* PMINIPORTWAVEPCI

Definition at line 1697 of file portcls.h.

◆ PMINIPORTWAVEPCISTREAM

typedef IMiniportWavePciStream* PMINIPORTWAVEPCISTREAM

Definition at line 1643 of file portcls.h.

◆ PMINIPORTWAVERT

typedef IMiniportWaveRT* PMINIPORTWAVERT

Definition at line 1983 of file portcls.h.

◆ PMINIPORTWAVERTSTREAM

typedef IMiniportWaveRTStream* PMINIPORTWAVERTSTREAM

Definition at line 1865 of file portcls.h.

◆ PMUSICTECHNOLOGY

typedef IMusicTechnology* PMUSICTECHNOLOGY

Definition at line 1028 of file portcls.h.

◆ PPCAUTOMATION_TABLE

◆ PPCCONNECTION_DESCRIPTOR

◆ PPCEVENT_ITEM

◆ PPCEVENT_REQUEST

◆ PPCFILTER_DESCRIPTOR

◆ PPCMETHOD_ITEM

◆ PPCMETHOD_REQUEST

◆ PPCNODE_DESCRIPTOR

◆ PPCPIN_DESCRIPTOR

◆ PPCPROPERTY_ITEM

◆ PPCPROPERTY_REQUEST

Definition at line 230 of file portcls.h.

◆ PPINCOUNT

typedef IPinCount* PPINCOUNT

Definition at line 2091 of file portcls.h.

◆ PPORT

typedef IPort* PPORT

Definition at line 1105 of file portcls.h.

◆ PPORTCLSVERSION

typedef IPortClsVersion* PPORTCLSVERSION

Definition at line 2263 of file portcls.h.

◆ PPORTEVENTS

typedef IPortEvents* PPORTEVENTS

Definition at line 2121 of file portcls.h.

◆ PPORTMIDI

typedef IPortMidi* PPORTMIDI

Definition at line 1132 of file portcls.h.

◆ PPORTTOPOLOGY

typedef IPortTopology* PPORTTOPOLOGY

Definition at line 1415 of file portcls.h.

◆ PPORTWAVECYCLIC

typedef IPortWaveCyclic* PPORTWAVECYCLIC

Definition at line 1184 of file portcls.h.

◆ PPORTWAVEPCI

typedef IPortWavePci* PPORTWAVEPCI

Definition at line 1248 of file portcls.h.

◆ PPORTWAVEPCISTREAM

typedef IPortWavePciStream* PPORTWAVEPCISTREAM

Definition at line 1590 of file portcls.h.

◆ PPORTWAVERT

typedef IPortWaveRT* PPORTWAVERT

Definition at line 1785 of file portcls.h.

◆ PPORTWAVERTSTREAM

typedef IPortWaveRTStream* PPORTWAVERTSTREAM

Definition at line 1847 of file portcls.h.

◆ PPOWERNOTIFY

typedef IPowerNotify* PPOWERNOTIFY

Definition at line 2059 of file portcls.h.

◆ PPREFETCHOFFSET

typedef IPreFetchOffset* PPREFETCHOFFSET

Definition at line 2297 of file portcls.h.

◆ PREGISTRYKEY

typedef IRegistryKey* PREGISTRYKEY

Definition at line 1009 of file portcls.h.

◆ PRESOURCELIST

typedef IResourceList* PRESOURCELIST

Definition at line 442 of file portcls.h.

◆ PSERVICEGROUP

typedef IServiceGroup* PSERVICEGROUP

Definition at line 614 of file portcls.h.

◆ PSERVICESINK

typedef IServiceSink* PSERVICESINK

Definition at line 569 of file portcls.h.

◆ PUNREGISTERPHYSICALCONNECTION

typedef IUnregisterPhysicalConnection* PUNREGISTERPHYSICALCONNECTION

Definition at line 677 of file portcls.h.

◆ PUNREGISTERSUBDEVICE

typedef IUnregisterSubdevice* PUNREGISTERSUBDEVICE

Definition at line 635 of file portcls.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kVersionInvalid 
kVersionWin98 
kVersionWin98SE 
kVersionWin2K 
kVersionWin98SE_QFE2 
kVersionWin2K_SP2 
kVersionWinME 
kVersionWin98SE_QFE3 
kVersionWinME_QFE1 
kVersionWinXP 
kVersionWinXPSP1 
kVersionWinServer2003 
kVersionWin2K_UAAQFE 
kVersionWinXP_UAAQFE 
kVersionWinServer2003_UAAQFE 

Definition at line 206 of file portcls.h.

206 {
207 kVersionInvalid = -1,
219 kVersionWin2K_UAAQFE, /* These support IUnregister* interface */
222};
@ kVersionWinServer2003_UAAQFE
Definition: portcls.h:221
@ kVersionInvalid
Definition: portcls.h:207
@ kVersionWin2K_SP2
Definition: portcls.h:212
@ kVersionWin2K
Definition: portcls.h:210
@ kVersionWinServer2003
Definition: portcls.h:218
@ kVersionWin2K_UAAQFE
Definition: portcls.h:219
@ kVersionWin98SE
Definition: portcls.h:209
@ kVersionWinXP
Definition: portcls.h:216
@ kVersionWinXP_UAAQFE
Definition: portcls.h:220
@ kVersionWin98SE_QFE2
Definition: portcls.h:211
@ kVersionWin98
Definition: portcls.h:208
@ kVersionWinME_QFE1
Definition: portcls.h:215
@ kVersionWinXPSP1
Definition: portcls.h:217
@ kVersionWin98SE_QFE3
Definition: portcls.h:214
@ kVersionWinME
Definition: portcls.h:213

◆ anonymous enum

anonymous enum
Enumerator
GeneralRegistryKey 
DeviceRegistryKey 
DriverRegistryKey 
HwProfileRegistryKey 
DeviceInterfaceRegistryKey 

Definition at line 898 of file portcls.h.

899{
905};
@ DriverRegistryKey
Definition: portcls.h:902
@ GeneralRegistryKey
Definition: portcls.h:900
@ DeviceInterfaceRegistryKey
Definition: portcls.h:904
@ DeviceRegistryKey
Definition: portcls.h:901
@ HwProfileRegistryKey
Definition: portcls.h:903

◆ INTERRUPTSYNCMODE

Enumerator
InterruptSyncModeNormal 
InterruptSyncModeAll 
InterruptSyncModeRepeat 

Definition at line 838 of file portcls.h.

839{
INTERRUPTSYNCMODE
Definition: portcls.h:839
@ InterruptSyncModeAll
Definition: portcls.h:841
@ InterruptSyncModeNormal
Definition: portcls.h:840
@ InterruptSyncModeRepeat
Definition: portcls.h:842

Function Documentation

◆ DECLARE_INTERFACE_() [1/37]

DECLARE_INTERFACE_ ( IAdapterPowerManagement  ,
IUnknown   
)

Definition at line 2014 of file portcls.h.

2015{
2017
2018 STDMETHOD_(void,PowerChangeState)(THIS_
2019 IN POWER_STATE NewState) PURE;
2020
2021 STDMETHOD_(NTSTATUS,QueryPowerChangeState)(THIS_
2022 IN POWER_STATE NewStateQuery) PURE;
2023
2024 STDMETHOD_(NTSTATUS,QueryDeviceCapabilities)(THIS_
2025 IN PDEVICE_CAPABILITIES PowerDeviceCaps) PURE;
2026};
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5

◆ DECLARE_INTERFACE_() [2/37]

DECLARE_INTERFACE_ ( IDmaChannel  ,
IUnknown   
)

Definition at line 778 of file portcls.h.

779{
782};
#define DEFINE_ABSTRACT_DMACHANNEL()
Definition: portcls.h:717

◆ DECLARE_INTERFACE_() [3/37]

DECLARE_INTERFACE_ ( IDmaChannelSlave  ,
IDmaChannel   
)

Definition at line 824 of file portcls.h.

825{
829};
#define DEFINE_ABSTRACT_DMACHANNELSLAVE()
Definition: portcls.h:791

◆ DECLARE_INTERFACE_() [4/37]

DECLARE_INTERFACE_ ( IDrmPort  ,
IUnknown   
)

Definition at line 2170 of file portcls.h.

2171{
2174};
#define DEFINE_ABSTRACT_DRMPORT()
Definition: portcls.h:2148

◆ DECLARE_INTERFACE_() [5/37]

DECLARE_INTERFACE_ ( IDrmPort2  ,
IDrmPort   
)

Definition at line 2212 of file portcls.h.

2213{
2216
2217 STDMETHOD_(NTSTATUS,AddContentHandlers)(THIS_
2218 IN ULONG ContentId,
2219 IN PVOID * paHandlers,
2221
2222 STDMETHOD_(NTSTATUS,ForwardContentToDeviceObject)(THIS_
2223 IN ULONG ContentId,
2225 IN PCDRMFORWARD DrmForward)PURE;
2226};

◆ DECLARE_INTERFACE_() [6/37]

DECLARE_INTERFACE_ ( IInterruptSync  ,
IUnknown   
)

Definition at line 854 of file portcls.h.

855{
857
858 STDMETHOD_(NTSTATUS, CallSynchronizedRoutine)( THIS_
860 IN PVOID DynamicContext) PURE;
861
862 STDMETHOD_(PKINTERRUPT, GetKInterrupt)( THIS ) PURE;
864 STDMETHOD_(void, Disconnect)( THIS ) PURE;
865
866 STDMETHOD_(NTSTATUS, RegisterServiceRoutine)( THIS_
868 IN PVOID DynamicContext,
870};

◆ DECLARE_INTERFACE_() [7/37]

DECLARE_INTERFACE_ ( IMiniport  ,
IUnknown   
)

Definition at line 1303 of file portcls.h.

1304{
1307};
#define DEFINE_ABSTRACT_MINIPORT()
Definition: portcls.h:1279

◆ DECLARE_INTERFACE_() [8/37]

DECLARE_INTERFACE_ ( IMiniportMidi  ,
IMiniport   
)

Definition at line 1354 of file portcls.h.

1355{
1358
1360 IN PUNKNOWN UnknownAdapter,
1363 OUT PSERVICEGROUP* ServiceGroup) PURE;
1364
1365 STDMETHOD_(void, Service)(THIS) PURE;
1366
1367 STDMETHOD_(NTSTATUS, NewStream)(THIS_
1369 IN PUNKNOWN OuterUnknown OPTIONAL,
1371 IN ULONG Pin,
1374 OUT PSERVICEGROUP* ServiceGroup) PURE;
1375
1376};
IMiniportMidiStream * PMINIPORTMIDISTREAM
Definition: portcls.h:1342
IPortMidi * PPORTMIDI
Definition: portcls.h:1132

◆ DECLARE_INTERFACE_() [9/37]

DECLARE_INTERFACE_ ( IMiniportMidiStream  ,
IUnknown   
)

Definition at line 1321 of file portcls.h.

1322{
1324
1325 STDMETHOD_(NTSTATUS,SetFormat)(THIS_
1327
1328 STDMETHOD_(NTSTATUS,SetState)(THIS_
1330
1335
1338 IN ULONG BytesToWrite,
1340};
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID BufferAddress
Definition: cdrom.h:990
_In_ BOOLEAN Read
Definition: strmini.h:479
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
Definition: vmhorizon.c:15
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
Definition: wdfiotarget.h:960
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
Definition: wdfiotarget.h:870

◆ DECLARE_INTERFACE_() [10/37]

DECLARE_INTERFACE_ ( IMiniportTopology  ,
IMiniport   
)

Definition at line 1432 of file portcls.h.

◆ DECLARE_INTERFACE_() [11/37]

DECLARE_INTERFACE_ ( IMiniportWaveCyclic  ,
IMiniport   
)

Definition at line 1522 of file portcls.h.

1523{
1526
1528 IN PUNKNOWN UnknownAdapter,
1531
1532 STDMETHOD_(NTSTATUS, NewStream)(THIS_
1534 IN PUNKNOWN OuterUnknown OPTIONAL,
1536 IN ULONG Pin,
1539 OUT PDMACHANNEL *DmaChannel,
1540 OUT PSERVICEGROUP *ServiceGroup) PURE;
1541};

◆ DECLARE_INTERFACE_() [12/37]

DECLARE_INTERFACE_ ( IMiniportWaveCyclicStream  ,
IUnknown   
)

Definition at line 1462 of file portcls.h.

1463{
1465
1466 STDMETHOD_(NTSTATUS,SetFormat)(THIS_
1468
1469 STDMETHOD_(ULONG,SetNotificationFreq)(THIS_
1471 OUT PULONG FrameSize) PURE;
1472
1473 STDMETHOD_(NTSTATUS,SetState)(THIS_
1475
1478
1479 STDMETHOD_(NTSTATUS,NormalizePhysicalPosition)(THIS_
1480 IN OUT PLONGLONG PhysicalPosition) PURE;
1481
1482 STDMETHOD_(void, Silence)( THIS_
1483 IN PVOID Buffer,
1485};

◆ DECLARE_INTERFACE_() [13/37]

DECLARE_INTERFACE_ ( IMiniportWavePci  ,
IMiniport   
)

Definition at line 1671 of file portcls.h.

1672{
1674
1676
1678 IN PUNKNOWN UnknownAdapter,
1681 OUT PSERVICEGROUP * ServiceGroup)PURE;
1682
1683 STDMETHOD_(NTSTATUS,NewStream)(THIS_
1685 IN PUNKNOWN OuterUnknown OPTIONAL,
1687 IN PPORTWAVEPCISTREAM PortStream,
1688 IN ULONG Pin,
1691 OUT PDMACHANNEL * DmaChannel,
1692 OUT PSERVICEGROUP * ServiceGroup)PURE;
1693
1695};

◆ DECLARE_INTERFACE_() [14/37]

DECLARE_INTERFACE_ ( IMiniportWavePciStream  ,
IUnknown   
)

Definition at line 1614 of file portcls.h.

1615{
1617
1618 STDMETHOD_(NTSTATUS,SetFormat)(THIS_
1620
1621 STDMETHOD_(NTSTATUS,SetState)(THIS_
1623
1626
1627 STDMETHOD_(NTSTATUS,NormalizePhysicalPosition)(THIS_
1628 IN OUT PLONGLONG PhysicalPosition)PURE;
1629
1630 STDMETHOD_(NTSTATUS,GetAllocatorFraming)(THIS_
1632
1633 STDMETHOD_(NTSTATUS,RevokeMappings)(THIS_
1634 IN PVOID FirstTag,
1635 IN PVOID LastTag,
1636 OUT PULONG MappingsRevoked)PURE;
1637
1638 STDMETHOD_(void,MappingAvailable)(THIS)PURE;
1639
1641};

◆ DECLARE_INTERFACE_() [15/37]

DECLARE_INTERFACE_ ( IMiniportWaveRT  ,
IMiniport   
)

Definition at line 1955 of file portcls.h.

1956{
1958
1960
1962 ( THIS_
1963 IN PUNKNOWN UnknownAdapter,
1966 ) PURE;
1967
1968 STDMETHOD_(NTSTATUS,NewStream)
1969 ( THIS_
1971 IN PPORTWAVERTSTREAM PortStream,
1972 IN ULONG Pin,
1975 ) PURE;
1976
1977 STDMETHOD_(NTSTATUS,GetDeviceDescription)
1978 ( THIS_
1980 ) PURE;
1981};

◆ DECLARE_INTERFACE_() [16/37]

DECLARE_INTERFACE_ ( IMiniportWaveRTStream  ,
IUnknown   
)

Definition at line 1859 of file portcls.h.

1860{
1863};
#define DEFINE_ABSTRACT_MINIPORTWAVERTSTREAM()
Definition: portcls.h:1721

◆ DECLARE_INTERFACE_() [17/37]

DECLARE_INTERFACE_ ( IMiniportWaveRTStreamNotification  ,
IMiniportWaveRTStream   
)

Definition at line 1913 of file portcls.h.

1914{
1916
1918
1919 STDMETHOD_(NTSTATUS,AllocateBufferWithNotification)
1920 ( THIS_
1921 IN ULONG NotificationCount,
1922 IN ULONG RequestedSize,
1923 OUT PMDL *AudioBufferMdl,
1924 OUT ULONG *ActualSize,
1925 OUT ULONG *OffsetFromFirstPage,
1927 ) PURE;
1928
1929 STDMETHOD_(VOID,FreeBufferWithNotification)
1930 ( THIS_
1931 IN PMDL AudioBufferMdl,
1933 ) PURE;
1934
1935 STDMETHOD_(NTSTATUS,RegisterNotificationEvent)
1936 ( THIS_
1938 ) PURE;
1939
1940 STDMETHOD_(NTSTATUS,UnregisterNotificationEvent)
1941 ( THIS_
1943 ) PURE;
1944};
@ NotificationEvent
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
Definition: mmfuncs.h:217
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE

◆ DECLARE_INTERFACE_() [18/37]

DECLARE_INTERFACE_ ( IMusicTechnology  ,
IUnknown   
)

Definition at line 1016 of file portcls.h.

1017{
1019
1020 STDMETHOD_(NTSTATUS, SetTechnology)( THIS_
1021 IN const GUID* Technology) PURE;
1022};
#define const
Definition: zconf.h:233

◆ DECLARE_INTERFACE_() [19/37]

DECLARE_INTERFACE_ ( IPinCount  ,
IUnknown   
)

Definition at line 2079 of file portcls.h.

2080{
2082
2084 IN ULONG PinId,
2085 IN OUT PULONG FilterNecessary,
2086 IN OUT PULONG FilterCurrent,
2087 IN OUT PULONG FilterPossible,
2088 IN OUT PULONG GlobalCurrent,
2089 IN OUT PULONG GlobalPossible) PURE;
2090};
_In_ const GUID _In_ ULONG PinCount
Definition: strmini.h:505

◆ DECLARE_INTERFACE_() [20/37]

DECLARE_INTERFACE_ ( IPort  ,
IUnknown   
)

Definition at line 1099 of file portcls.h.

1100{
1103};
#define DEFINE_ABSTRACT_PORT()
Definition: portcls.h:1047

◆ DECLARE_INTERFACE_() [21/37]

DECLARE_INTERFACE_ ( IPortClsVersion  ,
IUnknown   
)

Definition at line 2253 of file portcls.h.

2254{
2256
2258};
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD WINAPI GetVersion()
Definition: redirtest.c:5

◆ DECLARE_INTERFACE_() [22/37]

DECLARE_INTERFACE_ ( IPortEvents  ,
IUnknown   
)

Definition at line 2105 of file portcls.h.

2106{
2108
2109 STDMETHOD_(void,AddEventToEventList)(THIS_
2110 IN PKSEVENT_ENTRY EventEntry)PURE;
2111
2112 STDMETHOD_(void,GenerateEventList)(THIS_
2114 IN ULONG EventId,
2115 IN BOOL PinEvent,
2116 IN ULONG PinId,
2117 IN BOOL NodeEvent,
2118 IN ULONG NodeId)PURE;
2119};

◆ DECLARE_INTERFACE_() [23/37]

DECLARE_INTERFACE_ ( IPortMidi  ,
IPort   
)

Definition at line 1120 of file portcls.h.

1121{
1124
1126 IN PSERVICEGROUP ServiceGroup OPTIONAL) PURE;
1127
1128 STDMETHOD_(NTSTATUS, RegisterServiceGroup)(THIS_
1129 IN PSERVICEGROUP ServiceGroup) PURE;
1130};

◆ DECLARE_INTERFACE_() [24/37]

DECLARE_INTERFACE_ ( IPortTopology  ,
IPort   
)

Definition at line 1409 of file portcls.h.

1410{
1413};

◆ DECLARE_INTERFACE_() [25/37]

DECLARE_INTERFACE_ ( IPortWaveCyclic  ,
IPort   
)

Definition at line 1154 of file portcls.h.

1155{
1157
1159
1161 IN PSERVICEGROUP ServiceGroup) PURE;
1162
1163 STDMETHOD_(NTSTATUS, NewSlaveDmaChannel)(THIS_
1164 OUT PDMACHANNELSLAVE* DmaChannel,
1165 IN PUNKNOWN OuterUnknown,
1167 IN ULONG DmaIndex,
1169 IN BOOLEAN DemandMode,
1170 IN DMA_SPEED DmaSpeed) PURE;
1171
1172 STDMETHOD_(NTSTATUS, NewMasterDmaChannel)(THIS_
1173 OUT PDMACHANNEL* DmaChannel,
1174 IN PUNKNOWN OuterUnknown,
1177 IN BOOLEAN Dma32BitAddresses,
1179 IN DMA_WIDTH DmaWidth,
1180 IN DMA_SPEED DmaSpeed) PURE;
1181
1182};
_In_ BOOLEAN Dma64BitAddresses
Definition: ndis.h:4652
IDmaChannelSlave * PDMACHANNELSLAVE
Definition: portcls.h:831
enum _DMA_SPEED DMA_SPEED
enum _DMA_WIDTH DMA_WIDTH
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength

◆ DECLARE_INTERFACE_() [26/37]

DECLARE_INTERFACE_ ( IPortWavePci  ,
IPort   
)

Definition at line 1225 of file portcls.h.

1226{
1229
1231 IN PSERVICEGROUP ServiceGroup) PURE;
1232
1233 STDMETHOD_(NTSTATUS, NewMasterDmaChannel)(THIS_
1234 OUT PDMACHANNEL* DmaChannel,
1235 IN PUNKNOWN OuterUnknown,
1239 IN BOOLEAN Dma32BitAddresses,
1241 IN BOOLEAN IgnoreCount,
1242 IN DMA_WIDTH DmaWidth,
1243 IN DMA_SPEED DmaSpeed,
1245 IN ULONG DmaPort) PURE;
1246};
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2375

◆ DECLARE_INTERFACE_() [27/37]

DECLARE_INTERFACE_ ( IPortWavePciStream  ,
IUnknown   
)

Definition at line 1573 of file portcls.h.

1574{
1575 DEFINE_ABSTRACT_UNKNOWN() // For IUnknown
1576
1577 STDMETHOD_(NTSTATUS,GetMapping)(THIS_
1578 IN PVOID Tag,
1583
1584 STDMETHOD_(NTSTATUS,ReleaseMapping)(THIS_
1585 IN PVOID Tag)PURE;
1586
1587 STDMETHOD_(NTSTATUS,TerminatePacket)(THIS)PURE;
1588};

◆ DECLARE_INTERFACE_() [28/37]

DECLARE_INTERFACE_ ( IPortWaveRT  ,
IPort   
)

Definition at line 1778 of file portcls.h.

1779{
1780 DEFINE_ABSTRACT_UNKNOWN() // For IUnknown
1781
1782 DEFINE_ABSTRACT_PORT() // For IPort
1783};

◆ DECLARE_INTERFACE_() [29/37]

DECLARE_INTERFACE_ ( IPortWaveRTStream  ,
IUnknown   
)

Definition at line 1801 of file portcls.h.

1802{
1804
1805 STDMETHOD_(PMDL, AllocatePagesForMdl)
1806 ( THIS_
1809 ) PURE;
1810
1811 STDMETHOD_(PMDL, AllocateContiguousPagesForMdl)
1812 ( THIS_
1813 IN PHYSICAL_ADDRESS LowAddress,
1816 ) PURE;
1817
1818 STDMETHOD_(PVOID, MapAllocatedPages)
1819 ( THIS_
1822 ) PURE;
1823
1824 STDMETHOD_(VOID, UnmapAllocatedPages)
1825 ( THIS_
1828 ) PURE;
1829
1830 STDMETHOD_(VOID, FreePagesFromMdl)
1831 ( THIS_
1833 ) PURE;
1834
1835 STDMETHOD_(ULONG, GetPhysicalPagesCount)
1836 ( THIS_
1838 ) PURE;
1839
1840 STDMETHOD_(PHYSICAL_ADDRESS, GetPhysicalPageAddress)
1841 ( THIS_
1843 IN ULONG Index
1844 ) PURE;
1845};
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
ULONG_PTR SIZE_T
Definition: typedefs.h:80
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
Definition: mmfuncs.h:226
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:405
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_ SIZE_T TotalBytes
Definition: mmfuncs.h:228

◆ DECLARE_INTERFACE_() [30/37]

DECLARE_INTERFACE_ ( IPowerNotify  ,
IUnknown   
)

Definition at line 2051 of file portcls.h.

2052{
2054
2055 STDMETHOD_(void, PowerChangeNotify)(THIS_
2057};

◆ DECLARE_INTERFACE_() [31/37]

DECLARE_INTERFACE_ ( IPreFetchOffset  ,
IUnknown   
)

Definition at line 2286 of file portcls.h.

2287{
2289
2290 STDMETHOD_(DWORD, SetPreFetchOffset)(THIS_
2291 IN ULONG PreFetchOffset) PURE;
2292};

◆ DECLARE_INTERFACE_() [32/37]

DECLARE_INTERFACE_ ( IRegistryKey  ,
IUnknown   
)

Definition at line 909 of file portcls.h.

910{
912
913 STDMETHOD_(NTSTATUS, QueryKey)( THIS_
915 OUT PVOID KeyInformation,
918
919 STDMETHOD_(NTSTATUS, EnumerateKey)( THIS_
920 IN ULONG Index,
922 OUT PVOID KeyInformation,
925
926 STDMETHOD_(NTSTATUS, QueryValueKey)( THIS_
929 OUT PVOID KeyValueInformation,
932
933 STDMETHOD_(NTSTATUS, EnumerateValueKey)( THIS_
934 IN ULONG Index,
936 OUT PVOID KeyValueInformation,
939
940 STDMETHOD_(NTSTATUS, SetValueKey)( THIS_
942 IN ULONG Type,
943 IN PVOID Data,
945
946 STDMETHOD_(NTSTATUS, QueryRegistryValues)( THIS_
949
950 STDMETHOD_(NTSTATUS, NewSubKey)( THIS_
951 OUT IRegistryKey** RegistrySubKey,
952 IN PUNKNOWN OuterUnknown,
957
959};
BOOL DeleteKey(HWND hwnd, HKEY hKeyRoot, LPCWSTR keyPath)
Definition: edit.c:2072
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4755
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ PNDIS_STRING SubKeyName
Definition: ndis.h:4725
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
Definition: cmfuncs.h:94
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
Definition: rtlfuncs.h:4208
enum _KEY_VALUE_INFORMATION_CLASS KEY_VALUE_INFORMATION_CLASS
Definition: reg.c:135
enum _KEY_INFORMATION_CLASS KEY_INFORMATION_CLASS
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
Definition: wdfregistry.h:118
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_In_ ULONG _In_ KEY_INFORMATION_CLASS KeyInformationClass
Definition: zwfuncs.h:167

◆ DECLARE_INTERFACE_() [33/37]

DECLARE_INTERFACE_ ( IResourceList  ,
IUnknown   
)

Definition at line 387 of file portcls.h.

387 {
389
390 STDMETHOD_(ULONG, NumberOfEntries)( THIS ) PURE;
391
392 STDMETHOD_(ULONG, NumberOfEntriesOfType)( THIS_
393 IN CM_RESOURCE_TYPE Type) PURE;
394
396 IN CM_RESOURCE_TYPE Type,
398
399 STDMETHOD_(PCM_PARTIAL_RESOURCE_DESCRIPTOR, FindUntranslatedEntry)( THIS_
400 IN CM_RESOURCE_TYPE Type,
402
403 STDMETHOD_(NTSTATUS, AddEntry)( THIS_
406
407 STDMETHOD_(NTSTATUS, AddEntryFromParent)( THIS_
408 IN IResourceList* Parent,
409 IN CM_RESOURCE_TYPE Type,
411
412 STDMETHOD_(PCM_RESOURCE_LIST, TranslatedList)( THIS ) PURE;
413 STDMETHOD_(PCM_RESOURCE_LIST, UntranslatedList)( THIS ) PURE;
414};

◆ DECLARE_INTERFACE_() [34/37]

DECLARE_INTERFACE_ ( IServiceGroup  ,
IServiceSink   
)

Definition at line 579 of file portcls.h.

579 {
581
582 STDMETHOD_(void, RequestService)( THIS ) PURE; /* IServiceSink */
583
584 STDMETHOD_(NTSTATUS, AddMember)( THIS_
585 IN PSERVICESINK pServiceSink) PURE;
586
587 STDMETHOD_(void, RemoveMember)( THIS_
588 IN PSERVICESINK pServiceSink) PURE;
589
590 STDMETHOD_(void, SupportDelayedService)( THIS ) PURE;
591
592 STDMETHOD_(void, RequestDelayedService)( THIS_
593 IN ULONGLONG ullDelay) PURE;
594
595 STDMETHOD_(void, CancelDelayedService)( THIS ) PURE;
596};

◆ DECLARE_INTERFACE_() [35/37]

DECLARE_INTERFACE_ ( IServiceSink  ,
IUnknown   
)

Definition at line 561 of file portcls.h.

561 {
563 STDMETHOD_(void, RequestService)( THIS ) PURE;
564};

◆ DECLARE_INTERFACE_() [36/37]

DECLARE_INTERFACE_ ( IUnregisterPhysicalConnection  ,
IUnknown   
)

Definition at line 651 of file portcls.h.

652{
654
655 STDMETHOD_(NTSTATUS,UnregisterPhysicalConnection)(THIS_
657 IN PUNKNOWN FromUnknown,
658 IN ULONG FromPin,
659 IN PUNKNOWN ToUnknown,
660 IN ULONG ToPin)PURE;
661
662 STDMETHOD_(NTSTATUS,UnregisterPhysicalConnectionToExternal)(THIS_
664 IN PUNKNOWN FromUnknown,
665 IN ULONG FromPin,
667 IN ULONG ToPin)PURE;
668
669 STDMETHOD_(NTSTATUS,UnregisterPhysicalConnectionFromExternal)(THIS_
671 IN PUNICODE_STRING FromString,
672 IN ULONG FromPin,
673 IN PUNKNOWN ToUnknown,
674 IN ULONG ToPin)PURE;
675};

◆ DECLARE_INTERFACE_() [37/37]

DECLARE_INTERFACE_ ( IUnregisterSubdevice  ,
IUnknown   
)

Definition at line 627 of file portcls.h.

627 {
629
630 STDMETHOD_(NTSTATUS,UnregisterSubdevice)(THIS_
633};

◆ DEFINE_GUID() [1/46]

DEFINE_GUID ( CLSID_MiniportDriverFmSynth  ,
0xb4c90ae0L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [2/46]

DEFINE_GUID ( CLSID_MiniportDriverFmSynthWithVol  ,
0xe5a3c139L  ,
0xf0f2  ,
0x11d1  ,
0x81  ,
0xaf  ,
0x00  ,
0x60  ,
0x08  ,
0x33  ,
0x16  ,
0xc1   
)

◆ DEFINE_GUID() [3/46]

DEFINE_GUID ( CLSID_MiniportDriverUart  ,
0xb4c90ae1L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [4/46]

DEFINE_GUID ( CLSID_PortMidi  ,
0xb4c90a43L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [5/46]

DEFINE_GUID ( CLSID_PortTopology  ,
0xb4c90a32L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [6/46]

DEFINE_GUID ( CLSID_PortWaveCyclic  ,
0xb4c90a2aL  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [7/46]

DEFINE_GUID ( CLSID_PortWavePci  ,
0xb4c90a54L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [8/46]

DEFINE_GUID ( CLSID_PortWaveRT  ,
0xcc9be57a  ,
0xeb9e  ,
0x42b4  ,
0x94  ,
0xfc  ,
0xc  ,
0xad  ,
0x3d  ,
0xbc  ,
0xe7  ,
0xfa   
)

◆ DEFINE_GUID() [9/46]

DEFINE_GUID ( IID_IAdapterPowerManagement  ,
0x793417D0L  ,
0x35FE  ,
0x11D1  ,
0xAD  ,
0x08  ,
0x00  ,
0xA0  ,
0xC9  ,
0x0A  ,
0xB1  ,
0xB0   
)

◆ DEFINE_GUID() [10/46]

DEFINE_GUID ( IID_IDmaChannel  ,
0x22C6AC61L  ,
0x851B  ,
0x11D0  ,
0x9A  ,
0x7F  ,
0x00  ,
0xAA  ,
0x00  ,
0x38  ,
0xAC  ,
0xFE   
)

◆ DEFINE_GUID() [11/46]

DEFINE_GUID ( IID_IDrmPort  ,
0x286D3DF8L  ,
0xCA22  ,
0x4E2E  ,
0xB9  ,
0xBC  ,
0x20  ,
0xB4  ,
0xF0  ,
0xE2  ,
0x01  ,
0xCE   
)

◆ DEFINE_GUID() [12/46]

DEFINE_GUID ( IID_IDrmPort2  ,
0x1ACCE59CL  ,
0x7311  ,
0x4B6B  ,
0x9F  ,
0xBA  ,
0xCC  ,
0x3B  ,
0xA5  ,
0x9A  ,
0xCD  ,
0xCE   
)

◆ DEFINE_GUID() [13/46]

DEFINE_GUID ( IID_IInterruptSync  ,
0x22C6AC63L  ,
0x851B  ,
0x11D0  ,
0x9A  ,
0x7F  ,
0x00  ,
0xAA  ,
0x00  ,
0x38  ,
0xAC  ,
0xFE   
)

◆ DEFINE_GUID() [14/46]

DEFINE_GUID ( IID_IMiniport  ,
0xb4c90a24L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [15/46]

DEFINE_GUID ( IID_IMiniPort  ,
0xb4c90a24L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [16/46]

DEFINE_GUID ( IID_IMiniportMidi  ,
0xb4c90a41L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [17/46]

DEFINE_GUID ( IID_IMiniportMidiStream  ,
0xb4c90a42L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [18/46]

DEFINE_GUID ( IID_IMiniportTopology  ,
0xb4c90a31L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [19/46]

DEFINE_GUID ( IID_IMiniportWaveCyclic  ,
0xb4c90a27L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [20/46]

DEFINE_GUID ( IID_IMiniportWaveCyclicStream  ,
0xb4c90a28L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [21/46]

DEFINE_GUID ( IID_IMiniportWavePci  ,
0xb4c90a52L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [22/46]

DEFINE_GUID ( IID_IMiniportWavePciStream  ,
0xb4c90a53L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [23/46]

DEFINE_GUID ( IID_IMiniportWaveRT  ,
0xf9fc4d6  ,
0x6061  ,
0x4f3c  ,
0xb1  ,
0xfc  ,
0x7  ,
0x5e  ,
0x35  ,
0xf7  ,
0x96  ,
0xa   
)

◆ DEFINE_GUID() [24/46]

DEFINE_GUID ( IID_IMiniportWaveRTStream  ,
0xac9ab  ,
0xfaab  ,
0x4f3d  ,
0x94  ,
0x55  ,
0x6f  ,
0xf8  ,
0x30  ,
0x6a  ,
0x74  ,
0xa0   
)

◆ DEFINE_GUID() [25/46]

DEFINE_GUID ( IID_IMiniportWaveRTStreamNotification  ,
0x23759128  ,
0x96f1  ,
0x423b  ,
0xab  ,
0x4d  ,
0x81  ,
0x63  ,
0x5b  ,
0xcf  ,
0x8c  ,
0xa1   
)

◆ DEFINE_GUID() [26/46]

DEFINE_GUID ( IID_IMusicTechnology  ,
0x80396C3CL  ,
0xCBCB  ,
0x409B  ,
0x9F  ,
0x65  ,
0x4F  ,
0x1E  ,
0x74  ,
0x67  ,
0xCD  ,
0xAF   
)

◆ DEFINE_GUID() [27/46]

DEFINE_GUID ( IID_IPinCount  ,
0x5dadb7dcL  ,
0xa2cb  ,
0x4540  ,
0xa4  ,
0xa8  ,
0x42  ,
0x5e  ,
0xe4  ,
0xae  ,
0x90  ,
0x51   
)

◆ DEFINE_GUID() [28/46]

DEFINE_GUID ( IID_IPort  ,
0xb4c90a25L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [29/46]

DEFINE_GUID ( IID_IPortClsVersion  ,
0x7D89A7BBL  ,
0x869B  ,
0x4567  ,
0x8D  ,
0xBE  ,
0x1E  ,
0x16  ,
0x8C  ,
0xC8  ,
0x53  ,
0xDE   
)

◆ DEFINE_GUID() [30/46]

DEFINE_GUID ( IID_IPortEvents  ,
0xA80F29C4L  ,
0x5498  ,
0x11D2  ,
0x95  ,
0xD9  ,
0x00  ,
0xC0  ,
0x4F  ,
0xB9  ,
0x25  ,
0xD3   
)

◆ DEFINE_GUID() [31/46]

DEFINE_GUID ( IID_IPortMidi  ,
0xb4c90a40L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [32/46]

DEFINE_GUID ( IID_IPortTopology  ,
0xb4c90a30L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [33/46]

DEFINE_GUID ( IID_IPortWaveCyclic  ,
0xb4c90a26L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [34/46]

DEFINE_GUID ( IID_IPortWavePci  ,
0xb4c90a50L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [35/46]

DEFINE_GUID ( IID_IPortWavePciStream  ,
0xb4c90a51L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ DEFINE_GUID() [36/46]

DEFINE_GUID ( IID_IPortWaveRT  ,
0x339ff909  ,
0x68a9  ,
0x4310  ,
0xb0  ,
0x9b  ,
0x27  ,
0x4e  ,
0x96  ,
0xee  ,
0x4c  ,
0xbd   
)

◆ DEFINE_GUID() [37/46]

DEFINE_GUID ( IID_IPortWaveRTStream  ,
0x1809ce5a  ,
0x64bc  ,
0x4e62  ,
0xbd  ,
0x7d  ,
0x95  ,
0xbc  ,
0xe4  ,
0x3d  ,
0xe3  ,
0x93   
)

◆ DEFINE_GUID() [38/46]

DEFINE_GUID ( IID_IPowerNotify  ,
0x3DD648B8L  ,
0x969F  ,
0x11D1  ,
0x95  ,
0xA9  ,
0x00  ,
0xC0  ,
0x4F  ,
0xB9  ,
0x25  ,
0xD3   
)

◆ DEFINE_GUID() [39/46]

DEFINE_GUID ( IID_IPreFetchOffset  ,
0x7000f480L  ,
0xed44  ,
0x4e8b  ,
0xb3  ,
0x8a  ,
0x41  ,
0x2f  ,
0x8d  ,
0x7a  ,
0x50  ,
0x4d   
)

◆ DEFINE_GUID() [40/46]

DEFINE_GUID ( IID_IRegistryKey  ,
0xE8DA4302l  ,
0xF304  ,
0x11D0  ,
0x95  ,
0x8B  ,
0x00  ,
0xC0  ,
0x4F  ,
0xB9  ,
0x25  ,
0xD3   
)

◆ DEFINE_GUID() [41/46]

DEFINE_GUID ( IID_IResourceList  ,
0x22C6AC60L  ,
0x851B  ,
0x11D0  ,
0x9A  ,
0x7F  ,
0x00  ,
0xAA  ,
0x00  ,
0x38  ,
0xAC  ,
0xFE   
)

◆ DEFINE_GUID() [42/46]

DEFINE_GUID ( IID_IServiceGroup  ,
0x22C6AC65L  ,
0x851B  ,
0x11D0  ,
0x9A  ,
0x7F  ,
0x00  ,
0xAA  ,
0x00  ,
0x38  ,
0xAC  ,
0xFE   
)

◆ DEFINE_GUID() [43/46]

DEFINE_GUID ( IID_IServiceSink  ,
0x22C6AC64L  ,
0x851B  ,
0x11D0  ,
0x9A  ,
0x7F  ,
0x00  ,
0xAA  ,
0x00  ,
0x38  ,
0xAC  ,
0xFE   
)

◆ DEFINE_GUID() [44/46]

DEFINE_GUID ( IID_IUnregisterPhysicalConnection  ,
0x6c38e231L  ,
0x2a0d  ,
0x428d  ,
0x81  ,
0xf8  ,
0x07  ,
0xcc  ,
0x42  ,
0x8b  ,
0xb9  ,
0xa4   
)

◆ DEFINE_GUID() [45/46]

DEFINE_GUID ( IID_IUnregisterSubdevice  ,
0x16738177L  ,
0xe199  ,
0x41f9  ,
0x9a  ,
0x87  ,
0xab  ,
0xb2  ,
0xa5  ,
0x43  ,
0x2f  ,
0x21   
)

◆ DEFINE_GUID() [46/46]

DEFINE_GUID ( IID_MiniportDriverUart  ,
0xb4c90ae1L  ,
0x5791  ,
0x11d0  ,
0x86  ,
0xf9  ,
0x00  ,
0xa0  ,
0xc9  ,
0x11  ,
0xb5  ,
0x44   
)

◆ PcAddAdapterDevice()

PORTCLASSAPI NTSTATUS NTAPI PcAddAdapterDevice ( IN PDRIVER_OBJECT  DriverObject,
IN PDEVICE_OBJECT  PhysicalDeviceObject,
IN PCPFNSTARTDEVICE  StartDevice,
IN ULONG  MaxObjects,
IN ULONG  DeviceExtensionSize 
)

Definition at line 73 of file adapter.cpp.

79{
82 PDEVICE_OBJECT PrevDeviceObject;
83 PPCLASS_DEVICE_EXTENSION portcls_ext = NULL;
84
85 DPRINT("PcAddAdapterDevice called\n");
87
89 {
91 }
92
93 // check if the DeviceExtensionSize is provided
94 if ( DeviceExtensionSize < PORT_CLASS_DEVICE_EXTENSION_SIZE )
95 {
96 // driver does not need a device extension
97 if ( DeviceExtensionSize != 0 )
98 {
99 // DeviceExtensionSize must be zero
101 }
102 // set size to our extension size
103 DeviceExtensionSize = PORT_CLASS_DEVICE_EXTENSION_SIZE;
104 }
105
106 // create the device
108 DeviceExtensionSize,
109 NULL,
112 FALSE,
113 &fdo);
114
115 if (!NT_SUCCESS(status))
116 {
117 DPRINT("IoCreateDevice() failed with status 0x%08lx\n", status);
118 return status;
119 }
120
121 // Obtain the new device extension
122 portcls_ext = (PPCLASS_DEVICE_EXTENSION) fdo->DeviceExtension;
123 // initialize the device extension
124 RtlZeroMemory(portcls_ext, DeviceExtensionSize);
125 // allocate create item
126 portcls_ext->CreateItems = (PKSOBJECT_CREATE_ITEM)AllocateItem(NonPagedPool, MaxObjects * sizeof(KSOBJECT_CREATE_ITEM), TAG_PORTCLASS);
127
128 if (!portcls_ext->CreateItems)
129 {
130 // not enough resources
132 goto cleanup;
133 }
134
135 // store max subdevice count
136 portcls_ext->MaxSubDevices = MaxObjects;
137 // store the physical device object
139 // set up the start device function
140 portcls_ext->StartDevice = StartDevice;
141 // initialize timer lock
142 KeInitializeSpinLock(&portcls_ext->TimerListLock);
143 // initialize timer list
144 InitializeListHead(&portcls_ext->TimerList);
145 // initialize io timer
147 // start the io timer
148 IoStartTimer(fdo);
149
150 // set io flags
152 // clear initializing flag
153 fdo->Flags &= ~ DO_DEVICE_INITIALIZING;
154
155 // allocate the device header
156 status = KsAllocateDeviceHeader(&portcls_ext->KsDeviceHeader, MaxObjects, portcls_ext->CreateItems);
157 // did we succeed
158 if (!NT_SUCCESS(status))
159 {
160 goto cleanup;
161 }
162
163 // attach device to device stack
164 PrevDeviceObject = IoAttachDeviceToDeviceStack(fdo, PhysicalDeviceObject);
165 // did we succeed
166 if (PrevDeviceObject)
167 {
168 // store the device object in the device header
169 //KsSetDevicePnpBaseObject(portcls_ext->KsDeviceHeader, fdo, PrevDeviceObject);
170 portcls_ext->PrevDeviceObject = PrevDeviceObject;
171 }
172 else
173 {
174 // return error code
176 goto cleanup;
177 }
178
179 // register shutdown notification
181
182 return status;
183
184cleanup:
185
186 if (portcls_ext->KsDeviceHeader)
187 {
188 // free the device header
190 }
191
192 if (portcls_ext->CreateItems)
193 {
194 // free previously allocated create items
195 FreeItem(portcls_ext->CreateItems, TAG_PORTCLASS);
196 }
197
198 // delete created fdo
199 IoDeleteDevice(fdo);
200
201 return status;
202}
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
#define FILE_DEVICE_SECURE_OPEN
Definition: cdrw_usr.h:46
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
static void cleanup(void)
Definition: main.c:1335
KSDDKAPI NTSTATUS NTAPI KsAllocateDeviceHeader(OUT KSDEVICE_HEADER *OutHeader, IN ULONG ItemsCount, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL)
Definition: api.c:522
KSDDKAPI VOID NTAPI KsFreeDeviceHeader(IN KSDEVICE_HEADER DevHeader)
Definition: api.c:590
VOID NTAPI PcIoTimerRoutine(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
Definition: api.cpp:46
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define DO_DIRECT_IO
Definition: env_spec_w32.h:396
#define NonPagedPool
Definition: env_spec_w32.h:307
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
#define KeInitializeSpinLock(sl)
Definition: env_spec_w32.h:604
NTSTATUS NTAPI IoInitializeTimer(IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context)
Definition: iotimer.c:92
VOID NTAPI IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:133
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
Definition: misc.c:29
VOID FreeItem(IN PVOID Item)
Definition: misc.c:37
#define FILE_AUTOGENERATED_DEVICE_NAME
Definition: iotypes.h:138
static BOOL StartDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DevInfoData OPTIONAL, IN BOOL bEnable, IN DWORD HardwareProfile OPTIONAL, OUT BOOL *bNeedReboot OPTIONAL)
Definition: wizard.c:173
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
Definition: device.c:966
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
Definition: device.c:1031
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1694
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
Definition: device.c:1251
#define PORT_CLASS_DEVICE_EXTENSION_SIZE
Definition: portcls.h:160
#define PC_ASSERT_IRQL_EQUAL(x)
Definition: private.hpp:31
struct PCLASS_DEVICE_EXTENSION * PPCLASS_DEVICE_EXTENSION
#define TAG_PORTCLASS
Definition: private.hpp:24
#define FILE_DEVICE_KS
Definition: winioctl.h:153
#define DPRINT
Definition: sndvol32.h:71
KSDEVICE_HEADER KsDeviceHeader
Definition: private.hpp:401
PDEVICE_OBJECT PhysicalDeviceObject
Definition: private.hpp:402
PDEVICE_OBJECT PrevDeviceObject
Definition: private.hpp:403
KSOBJECT_CREATE_ITEM * CreateItems
Definition: private.hpp:408
PCPFNSTARTDEVICE StartDevice
Definition: private.hpp:404
KSPIN_LOCK TimerListLock
Definition: private.hpp:413
PVOID DeviceExtension
Definition: env_spec_w32.h:418
Definition: ps.c:97
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
#define DO_POWER_PAGABLE

Referenced by AddDevice().

◆ PcAddContentHandlers()

PORTCLASSAPI NTSTATUS NTAPI PcAddContentHandlers ( IN ULONG  ContentId,
IN PVOID paHandlers,
IN ULONG  NumHandlers 
)

Definition at line 16 of file drm.cpp.

20{
22 return DrmAddContentHandlers(ContentId, paHandlers, NumHandlers);
23}
NTSTATUS NTAPI DrmAddContentHandlers(IN ULONG ContentId, IN PVOID *paHandlers, IN ULONG NumHandlers)
Definition: stubs.cpp:29

◆ PcCompleteIrp()

PORTCLASSAPI NTSTATUS NTAPI PcCompleteIrp ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp,
IN NTSTATUS  Status 
)

Definition at line 458 of file irp.cpp.

462{
463#if 0
465 PC_ASSERT(Irp);
467#endif
468
469 Irp->IoStatus.Status = Status;
471
472 return Status;
473}
Status
Definition: gdiplustypes.h:25
#define IoCompleteRequest
Definition: irp.c:1240
#define STATUS_PENDING
Definition: ntstatus.h:82
#define PC_ASSERT(exp)
Definition: private.hpp:26
#define IO_NO_INCREMENT
Definition: iotypes.h:598

Referenced by PortClsPnp().

◆ PcCompletePendingPropertyRequest()

PORTCLASSAPI NTSTATUS NTAPI PcCompletePendingPropertyRequest ( IN PPCPROPERTY_REQUEST  PropertyRequest,
IN NTSTATUS  NtStatus 
)

Definition at line 181 of file api.cpp.

184{
185 // sanity checks
187
188 if (!PropertyRequest || !PropertyRequest->Irp || NtStatus == STATUS_PENDING)
190
191 // set the final status code
192 PropertyRequest->Irp->IoStatus.Status = NtStatus;
193
194 // complete the irp
195 IoCompleteRequest(PropertyRequest->Irp, IO_SOUND_INCREMENT);
196
197 // free the property request
198 FreeItem(PropertyRequest, TAG_PORTCLASS);
199
200 // return success
201 return STATUS_SUCCESS;
202}
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define PC_ASSERT_IRQL(x)
Definition: private.hpp:30
#define STATUS_SUCCESS
Definition: shellext.h:65
#define IO_SOUND_INCREMENT
Definition: iotypes.h:608

◆ PcCreateContentMixed()

PORTCLASSAPI NTSTATUS NTAPI PcCreateContentMixed ( IN PULONG  paContentId,
IN ULONG  cContentId,
OUT PULONG  pMixedContentId 
)

Definition at line 27 of file drm.cpp.

31{
34}
NTSTATUS NTAPI DrmCreateContentMixed(IN PULONG paContentId, IN ULONG cContentId, OUT PULONG pMixedContentId)
Definition: stubs.cpp:47

◆ PcDestroyContent()

PORTCLASSAPI NTSTATUS NTAPI PcDestroyContent ( IN ULONG  ContentId)

Definition at line 38 of file drm.cpp.

40{
42 return DrmDestroyContent(ContentId);
43}
NTSTATUS NTAPI DrmDestroyContent(IN ULONG ContentId)
Definition: stubs.cpp:64

◆ PcDispatchIrp()

PORTCLASSAPI NTSTATUS NTAPI PcDispatchIrp ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 409 of file irp.cpp.

412{
413 PIO_STACK_LOCATION IoStack;
414
416
417 DPRINT("PcDispatchIrp called - handling IRP in PortCls MajorFunction %x MinorFunction %x\n", IoStack->MajorFunction, IoStack->MinorFunction);
418
419 switch ( IoStack->MajorFunction )
420 {
421 // PortCls
422 case IRP_MJ_CREATE :
424
425 case IRP_MJ_PNP :
426 return PortClsPnp(DeviceObject, Irp);
427
428 case IRP_MJ_POWER :
430
433
434 case IRP_MJ_CLOSE:
436
439
440 case IRP_MJ_SHUTDOWN:
442
443 default:
444 DPRINT("Unhandled function %x\n", IoStack->MajorFunction);
445 break;
446 };
447
448 // If we reach here, we just complete the IRP
449 Irp->IoStatus.Status = STATUS_SUCCESS;
450 Irp->IoStatus.Information = 0;
452
453 return STATUS_SUCCESS;
454}
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
KSDDKAPI NTSTATUS NTAPI KsDispatchIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:2084
NTSTATUS NTAPI PortClsPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:36
NTSTATUS NTAPI PortClsShutdown(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:384
NTSTATUS NTAPI PortClsPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:202
NTSTATUS NTAPI PortClsCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:25
NTSTATUS NTAPI PortClsSysControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:367
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2793
#define IRP_MJ_SYSTEM_CONTROL
#define IRP_MJ_SHUTDOWN
#define IRP_MJ_POWER

Referenced by AdapterDispatchPnp(), and PcInitializeAdapterDriver().

◆ PcForwardContentToDeviceObject()

PORTCLASSAPI NTSTATUS NTAPI PcForwardContentToDeviceObject ( IN ULONG  ContentId,
IN PVOID  Reserved,
IN PCDRMFORWARD  DrmForward 
)

Definition at line 47 of file drm.cpp.

51{
53 return DrmForwardContentToDeviceObject(ContentId, Reserved, DrmForward);
54}
NTSTATUS NTAPI DrmForwardContentToDeviceObject(IN ULONG ContentId, IN PVOID Reserved, IN PCDRMFORWARD DrmForward)
Definition: stubs.cpp:80

◆ PcForwardContentToFileObject()

PORTCLASSAPI NTSTATUS NTAPI PcForwardContentToFileObject ( IN ULONG  ContentId,
IN PFILE_OBJECT  FileObject 
)

Definition at line 58 of file drm.cpp.

61{
64}
NTSTATUS NTAPI DrmForwardContentToFileObject(IN ULONG ContentId, IN PFILE_OBJECT FileObject)
Definition: stubs.cpp:99

◆ PcForwardContentToInterface()

PORTCLASSAPI NTSTATUS NTAPI PcForwardContentToInterface ( IN ULONG  ContentId,
IN PUNKNOWN  pUnknown,
IN ULONG  NumMethods 
)

Definition at line 68 of file drm.cpp.

72{
74}
NTSTATUS NTAPI DrmForwardContentToInterface(IN ULONG ContentId, IN PUNKNOWN pUnknown, IN ULONG NumMethods)
Definition: stubs.cpp:116

◆ PcForwardIrpSynchronous()

PORTCLASSAPI NTSTATUS NTAPI PcForwardIrpSynchronous ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 509 of file irp.cpp.

512{
514 PPCLASS_DEVICE_EXTENSION DeviceExt;
516
518
519 DeviceExt = (PPCLASS_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
520
521 // initialize the notification event
523
524 // are there enough irp stack locations
525 if (Irp->CurrentLocation < Irp->StackCount + 1)
526 {
528 }
529
531
532 // now call the driver
534 // did the request complete yet
535 if (Status == STATUS_PENDING)
536 {
537 // not yet, lets wait a bit
539 Status = Irp->IoStatus.Status;
540 }
541 return Status;
542}
#define TRUE
Definition: types.h:120
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
Definition: env_spec_w32.h:478
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
Definition: irp.cpp:490
#define KernelMode
Definition: asm.h:34
#define IoCopyCurrentIrpStackLocationToNext(Irp)
Definition: ntifs_ex.h:413
#define IoCallDriver
Definition: irp.c:1225
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895
@ Executive
Definition: ketypes.h:415

Referenced by PortClsPnp(), and PwrCompletionFunction().

◆ PcGetContentRights()

PORTCLASSAPI NTSTATUS NTAPI PcGetContentRights ( IN ULONG  ContentId,
OUT PDRMRIGHTS  DrmRights 
)

Definition at line 78 of file drm.cpp.

81{
83 return DrmGetContentRights(ContentId, DrmRights);
84}
NTSTATUS NTAPI DrmGetContentRights(IN ULONG ContentId, OUT PDRMRIGHTS DrmRights)
Definition: stubs.cpp:133

◆ PcGetDeviceProperty()

PORTCLASSAPI NTSTATUS NTAPI PcGetDeviceProperty ( IN PVOID  DeviceObject,
IN DEVICE_REGISTRY_PROPERTY  DeviceProperty,
IN ULONG  BufferLength,
OUT PVOID  PropertyBuffer,
OUT PULONG  ResultLength 
)

Definition at line 16 of file api.cpp.

22{
23 PPCLASS_DEVICE_EXTENSION DeviceExtension;
24
26
27 DeviceExtension = (PPCLASS_DEVICE_EXTENSION)((PDEVICE_OBJECT)DeviceObject)->DeviceExtension;
28
30}
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
Definition: pnpmgr.c:1382

◆ PcGetTimeInterval()

PORTCLASSAPI ULONGLONG NTAPI PcGetTimeInterval ( IN ULONGLONG  Since)

Definition at line 34 of file api.cpp.

36{
37 LARGE_INTEGER CurrentTime;
38
39 KeQuerySystemTime(&CurrentTime);
40
41 return (CurrentTime.QuadPart - Since);
42}
#define KeQuerySystemTime(t)
Definition: env_spec_w32.h:570
LONGLONG QuadPart
Definition: typedefs.h:114

Referenced by DMusMPUInterruptServiceRoutine(), InitMPU(), and WriteMPU().

◆ PcInitializeAdapterDriver()

PORTCLASSAPI NTSTATUS NTAPI PcInitializeAdapterDriver ( IN PDRIVER_OBJECT  DriverObject,
IN PUNICODE_STRING  RegistryPathName,
IN PDRIVER_ADD_DEVICE  AddDevice 
)

Definition at line 29 of file adapter.cpp.

33{
34 DPRINT("PcInitializeAdapterDriver\n");
36
37 // Our IRP handlers
38 DPRINT("Setting IRP handlers\n");
40 DriverObject->MajorFunction[IRP_MJ_PNP] = PcDispatchIrp;
41 DriverObject->MajorFunction[IRP_MJ_POWER] = PcDispatchIrp;
44
45 // The driver-supplied AddDevice
46 DriverObject->DriverExtension->AddDevice = AddDevice;
47
48 // KS handles these
49 DPRINT("Setting KS function handlers\n");
57
58 DPRINT("PortCls has finished initializing the adapter driver\n");
59
60 return STATUS_SUCCESS;
61}
KSDDKAPI NTSTATUS NTAPI KsSetMajorFunctionHandler(IN PDRIVER_OBJECT DriverObject, IN ULONG MajorFunction)
Definition: irp.c:2050
NTSTATUS NTAPI PcDispatchIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:409
DRIVER_ADD_DEVICE AddDevice
Definition: parport.h:72
#define IRP_MJ_READ
Definition: rdpdr.c:46
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
#define IRP_MJ_QUERY_SECURITY
#define IRP_MJ_FLUSH_BUFFERS
#define IRP_MJ_SET_SECURITY

Referenced by DriverEntry().

◆ PcNewDmaChannel()

PORTCLASSAPI NTSTATUS NTAPI PcNewDmaChannel ( OUT PDMACHANNEL OutDmaChannel,
IN PUNKNOWN OuterUnknown  OPTIONAL,
IN POOL_TYPE  PoolType,
IN PDEVICE_DESCRIPTION  DeviceDescription,
IN PDEVICE_OBJECT  DeviceObject 
)

Definition at line 479 of file dma_slave.cpp.

485{
488
489 DPRINT("OutDmaChannel %p OuterUnknown %p PoolType %p DeviceDescription %p DeviceObject %p\n",
490 OutDmaChannel, OuterUnknown, PoolType, DeviceDescription, DeviceObject);
491
492 This = new(PoolType, TAG_PORTCLASS)CDmaChannelInit(OuterUnknown);
493 if (!This)
495
496 Status = This->QueryInterface(IID_IDmaChannel, (PVOID*)OutDmaChannel);
497
498 if (!NT_SUCCESS(Status))
499 {
500 delete This;
501 return Status;
502 }
503
505
506 if (!NT_SUCCESS(Status))
507 {
508 delete This;
509 return Status;
510 }
511
512 return Status;
513}

◆ PcNewInterruptSync()

PORTCLASSAPI NTSTATUS NTAPI PcNewInterruptSync ( OUT PINTERRUPTSYNC OUtInterruptSync,
IN PUNKNOWN OuterUnknown  OPTIONAL,
IN PRESOURCELIST  ResourceList,
IN ULONG  ResourceIndex,
IN INTERRUPTSYNCMODE  Mode 
)

Definition at line 295 of file interrupt.cpp.

301{
304
305 DPRINT("PcNewInterruptSync entered OutInterruptSync %p OuterUnknown %p ResourceList %p ResourceIndex %u Mode %d\n",
306 OutInterruptSync, OuterUnknown, ResourceList, ResourceIndex, Mode);
307
308 if (!OutInterruptSync || !ResourceList || Mode < InterruptSyncModeNormal || Mode > InterruptSyncModeRepeat)
310
311 if (ResourceIndex > ResourceList->NumberOfEntriesOfType(CmResourceTypeInterrupt))
313
314 This = new(NonPagedPool, TAG_PORTCLASS)CInterruptSync(OuterUnknown);
315 if (!This)
317
318 Status = This->QueryInterface(IID_IInterruptSync, (PVOID*)OutInterruptSync);
319
320 if (!NT_SUCCESS(Status))
321 {
322 delete This;
323 return Status;
324 }
325
326 ResourceList->AddRef();
327
328 //
329 // initialize object
330 //
331 This->m_Mode = Mode;
332 This->m_ResourceIndex = ResourceIndex;
333 This->m_ResourceList = ResourceList;
334 InitializeListHead(&This->m_ServiceRoutines);
335 KeInitializeSpinLock(&This->m_Lock);
336
337 return Status;
338}
_In_ ULONG Mode
Definition: hubbusif.h:303
#define CmResourceTypeInterrupt
Definition: hwresource.cpp:124

Referenced by CMiniport::ProcessResources(), CAC97MiniportWaveRT::ProcessResources(), and STDMETHODIMP_().

◆ PcNewMiniport()

PORTCLASSAPI NTSTATUS NTAPI PcNewMiniport ( OUT PMINIPORT OutMiniport,
IN REFCLSID  ClassId 
)

Definition at line 45 of file miniport.cpp.

48{
50
51 DPRINT("PcNewMiniport entered\n");
53
54 if (!OutMiniport)
55 {
56 DPRINT("PcNewMiniport was supplied a NULL OutPort parameter\n");
58 }
59
60 if (IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverDMusUART) ||
61 IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverUart) ||
62 IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverDMusUARTCapture))
63 {
64 Status = NewMiniportDMusUART(OutMiniport, ClassId);
65 }
66 else if (IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverFmSynth) ||
67 IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverFmSynthWithVol))
68 {
69 Status = NewMiniportFmSynth(OutMiniport, ClassId);
70 }
71 else
72 {
74 }
75
76 DPRINT("PcNewMiniport Status %x\n", Status);
77 return Status;
78}
NTSTATUS NewMiniportDMusUART(OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
NTSTATUS NewMiniportFmSynth(OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
#define IsEqualGUIDAligned(guid1, guid2)
Definition: wdm.template.h:235

Referenced by InstallSubdevice(), and StartDevice().

◆ PcNewPort()

PORTCLASSAPI NTSTATUS NTAPI PcNewPort ( OUT PPORT OutPort,
IN REFCLSID  ClassId 
)

Definition at line 17 of file port.cpp.

20{
23
24 DPRINT("PcNewPort entered\n");
25
27
28 if (!OutPort)
29 {
30 DPRINT("PcNewPort was supplied a NULL OutPort parameter\n");
32 }
33
34 if (IsEqualGUIDAligned(ClassId, CLSID_PortMidi))
35 Status = NewPortDMus(OutPort);
36 else if (IsEqualGUIDAligned(ClassId, CLSID_PortDMus))
37 Status = NewPortDMus(OutPort);
38 else if (IsEqualGUIDAligned(ClassId, CLSID_PortTopology))
39 Status = NewPortTopology(OutPort);
40 else if (IsEqualGUIDAligned(ClassId, CLSID_PortWaveCyclic))
41 Status = NewPortWaveCyclic(OutPort);
42 else if (IsEqualGUIDAligned(ClassId, CLSID_PortWavePci))
43 Status = NewPortWavePci(OutPort);
44 else if (IsEqualGUIDAligned(ClassId, CLSID_PortWaveRT))
45 Status = NewPortWaveRT(OutPort);
46 else
47 {
48
50 {
51 DPRINT("unknown interface %S\n", GuidString.Buffer);
53 }
54
56 return Status;
57 }
58 DPRINT("PcNewPort Status %lx\n", Status);
59
60 return Status;
61}
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
static PWSTR GuidString
Definition: apphelp.c:93
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define STATUS_NOT_SUPPORTED
Definition: ntstatus.h:423
NTSTATUS NewPortDMus(OUT PPORT *OutPort)
Definition: port_dmus.cpp:482
NTSTATUS NewPortTopology(OUT PPORT *OutPort)
NTSTATUS NewPortWaveCyclic(OUT PPORT *OutPort)
NTSTATUS NewPortWavePci(OUT PPORT *OutPort)
NTSTATUS NewPortWaveRT(OUT PPORT *OutPort)

Referenced by InstallSubdevice(), and StartDevice().

◆ PcNewRegistryKey()

PORTCLASSAPI NTSTATUS NTAPI PcNewRegistryKey ( OUT PREGISTRYKEY OutRegistryKey,
IN PUNKNOWN OuterUnknown  OPTIONAL,
IN ULONG  RegistryKeyType,
IN ACCESS_MASK  DesiredAccess,
IN PVOID DeviceObject  OPTIONAL,
IN PVOID SubDevice  OPTIONAL,
IN POBJECT_ATTRIBUTES ObjectAttributes  OPTIONAL,
IN ULONG CreateOptions  OPTIONAL,
OUT PULONG Disposition  OPTIONAL 
)

Definition at line 264 of file registry.cpp.

274{
275 HANDLE hHandle;
277 CRegistryKey * RegistryKey;
278 PPCLASS_DEVICE_EXTENSION DeviceExt;
279 PSUBDEVICE_DESCRIPTOR SubDeviceDescriptor;
280 ISubdevice * Device;
281 PSYMBOLICLINK_ENTRY SymEntry;
282 BOOL CanDelete = FALSE;
283
284 DPRINT("PcNewRegistryKey entered\n");
285
286 if (!OutRegistryKey)
288
289 if (RegistryKeyType != GeneralRegistryKey &&
290 RegistryKeyType != DeviceRegistryKey &&
291 RegistryKeyType != DriverRegistryKey &&
292 RegistryKeyType != HwProfileRegistryKey &&
293 RegistryKeyType != DeviceInterfaceRegistryKey)
294 {
296 }
297
298 // check for the key type
299 if (RegistryKeyType == GeneralRegistryKey)
300 {
301 // do we have the required object attributes
302 if (!ObjectAttributes)
303 {
304 // object attributes is mandatory
306 }
307 // try to create the key
308 Status = ZwCreateKey(&hHandle, DesiredAccess, ObjectAttributes, 0, NULL, CreateOptions, Disposition);
309
310 // key can be deleted
311 CanDelete = TRUE;
312 }
313 else if (RegistryKeyType == DeviceRegistryKey ||
314 RegistryKeyType == DriverRegistryKey ||
315 RegistryKeyType == HwProfileRegistryKey)
316 {
317 // check for HwProfileRegistryKey case
318 if (RegistryKeyType == HwProfileRegistryKey)
319 {
320 // IoOpenDeviceRegistryKey used different constant
322 }
323
324 // obtain the new device extension
325 DeviceExt = (PPCLASS_DEVICE_EXTENSION) ((PDEVICE_OBJECT)DeviceObject)->DeviceExtension;
326
327 Status = IoOpenDeviceRegistryKey(DeviceExt->PhysicalDeviceObject, RegistryKeyType, DesiredAccess, &hHandle);
328 }
329 else if (RegistryKeyType == DeviceInterfaceRegistryKey)
330 {
331 if (SubDevice == NULL)
332 {
333 // invalid parameter
335 }
336
337 // look up our undocumented interface
338 Status = ((PUNKNOWN)SubDevice)->QueryInterface(IID_ISubdevice, (LPVOID*)&Device);
339
340 if (!NT_SUCCESS(Status))
341 {
342 DPRINT("No ISubdevice interface\n");
343 // invalid parameter
345 }
346
347 // get the subdevice descriptor
348 Status = Device->GetDescriptor(&SubDeviceDescriptor);
349 if (!NT_SUCCESS(Status))
350 {
351 DPRINT("Failed to get subdevice descriptor %x\n", Status);
352 ((PUNKNOWN)SubDevice)->Release();
353 return STATUS_UNSUCCESSFUL;
354 }
355
356 // is there an registered device interface
357 if (IsListEmpty(&SubDeviceDescriptor->SymbolicLinkList))
358 {
359 DPRINT("No device interface registered\n");
360 ((PUNKNOWN)SubDevice)->Release();
361 return STATUS_UNSUCCESSFUL;
362 }
363
364 // get the first symbolic link
366
367 // open device interface
369
370 // release subdevice interface
371 ((PUNKNOWN)SubDevice)->Release();
372 }
373
374 // check for success
375 if (!NT_SUCCESS(Status))
376 {
377 DPRINT1("PcNewRegistryKey failed with %lx\n", Status);
378 return Status;
379 }
380
381 // allocate new registry key object
382 RegistryKey = new(NonPagedPool, TAG_PORTCLASS)CRegistryKey(OuterUnknown, hHandle, CanDelete);
383 if (!RegistryKey)
384 {
385 // not enough memory
386 ZwClose(hHandle);
388 }
389
390 // query for interface
391 Status = RegistryKey->QueryInterface(IID_IRegistryKey, (PVOID*)OutRegistryKey);
392
393 if (!NT_SUCCESS(Status))
394 {
395 // out of memory
396 delete RegistryKey;
397 }
398
399 DPRINT("PcNewRegistryKey result %p\n", *OutRegistryKey);
400 return STATUS_SUCCESS;
401}
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
#define DPRINT1
Definition: precomp.h:8
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
Definition: registry.cpp:46
IUnknown * PUNKNOWN
Definition: com_apitest.h:45
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
NTSTATUS NTAPI IoOpenDeviceInterfaceRegistryKey(IN PUNICODE_STRING SymbolicLinkName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DeviceInterfaceKey)
Definition: deviface.c:241
NTSTATUS NTAPI IoOpenDeviceRegistryKey(IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey)
Definition: pnpmgr.c:1621
base of all file and directory entries
Definition: entries.h:83
LIST_ENTRY SymbolicLinkList
Definition: interfaces.hpp:219
Definition: interfaces.hpp:174
UNICODE_STRING SymbolicLink
Definition: interfaces.hpp:176
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE
Definition: iofuncs.h:2788
#define PLUGPLAY_REGKEY_DEVICE
Definition: iofuncs.h:2786

Referenced by CAC97AdapterCommon::DisableAC97Pin(), CMiniportWaveCMI::loadChannelConfigFromRegistry(), CAC97AdapterCommon::SetAC97Default(), and CMiniportWaveCMI::storeChannelConfigToRegistry().

◆ PcNewResourceList()

PORTCLASSAPI NTSTATUS NTAPI PcNewResourceList ( OUT PRESOURCELIST OutResourceList,
IN PUNKNOWN OuterUnknown  OPTIONAL,
IN POOL_TYPE  PoolType,
IN PCM_RESOURCE_LIST  TranslatedResources,
IN PCM_RESOURCE_LIST  UntranslatedResources 
)

Definition at line 295 of file resource.cpp.

301{
302 PCM_RESOURCE_LIST NewUntranslatedResources, NewTranslatedResources;
303 ULONG ResourceSize, ResourceCount;
304 CResourceList* NewList;
306
307 if (!TranslatedResourceList)
308 {
309 /* If the untranslated resource list is also not provided, it becomes an empty resource list */
310 if (UntranslatedResourceList)
311 {
312 /* Invalid parameter mix */
314 }
315 }
316 else
317 {
318 /* If the translated resource list is also not provided, it becomes an empty resource list */
319 if (!UntranslatedResourceList)
320 {
321 /* Invalid parameter mix */
323 }
324 }
325
326 /* Allocate resource list */
327 NewList = new(PoolType, TAG_PORTCLASS)CResourceList(OuterUnknown);
328 if (!NewList)
330
331 /* Query resource list */
332 Status = NewList->QueryInterface(IID_IResourceList, (PVOID*)OutResourceList);
333 if (!NT_SUCCESS(Status))
334 {
335 /* Ouch, FIX ME */
336 delete NewList;
338 }
339
340 /* Is there a resource list */
341 if (!TranslatedResourceList)
342 {
343 /* Empty resource list */
344 return STATUS_SUCCESS;
345 }
346
347 /* Sanity check */
348 ASSERT(UntranslatedResourceList->List[0].PartialResourceList.Count == TranslatedResourceList->List[0].PartialResourceList.Count);
349
350 /* Get resource count */
351 ResourceCount = UntranslatedResourceList->List[0].PartialResourceList.Count;
352#ifdef _MSC_VER
353 ResourceSize = FIELD_OFFSET(CM_RESOURCE_LIST, List[0].PartialResourceList.PartialDescriptors[ResourceCount]);
354#else
356#endif
357
358 /* Allocate translated resource list */
359 NewTranslatedResources = (PCM_RESOURCE_LIST)AllocateItem(PoolType, ResourceSize, TAG_PORTCLASS);
360 if (!NewTranslatedResources)
361 {
362 /* No memory */
363 delete NewList;
365 }
366
367 /* Allocate untranslated resource list */
368 NewUntranslatedResources = (PCM_RESOURCE_LIST)AllocateItem(PoolType, ResourceSize, TAG_PORTCLASS);
369 if (!NewUntranslatedResources)
370 {
371 /* No memory */
372 delete NewList;
373 FreeItem(NewTranslatedResources, TAG_PORTCLASS);
375 }
376
377 /* Copy resource lists */
378 RtlCopyMemory(NewTranslatedResources, TranslatedResourceList, ResourceSize);
379 RtlCopyMemory(NewUntranslatedResources, UntranslatedResourceList, ResourceSize);
380
381 /* Init resource list */
382 NewList->m_TranslatedResourceList= NewTranslatedResources;
383 NewList->m_UntranslatedResourceList = NewUntranslatedResources;
385 NewList->m_MaxEntries = ResourceCount;
386 NewList->m_PoolType = PoolType;
387
388 /* Done */
389 return STATUS_SUCCESS;
390}
POOL_TYPE m_PoolType
Definition: resource.cpp:37
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
Definition: resource.cpp:61
ULONG m_MaxEntries
Definition: resource.cpp:41
PCM_RESOURCE_LIST m_TranslatedResourceList
Definition: resource.cpp:38
ULONG m_NumberOfEntries
Definition: resource.cpp:40
PCM_RESOURCE_LIST m_UntranslatedResourceList
Definition: resource.cpp:39
struct _CM_RESOURCE_LIST CM_RESOURCE_LIST
struct _CM_RESOURCE_LIST * PCM_RESOURCE_LIST
static ULONG ResourceCount
Definition: inbv.c:50
#define ASSERT(a)
Definition: mode.c:44
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550

Referenced by PortClsPnp().

◆ PcNewResourceSublist()

PORTCLASSAPI NTSTATUS NTAPI PcNewResourceSublist ( OUT PRESOURCELIST OutResourceList,
IN PUNKNOWN OuterUnknown  OPTIONAL,
IN POOL_TYPE  PoolType,
IN PRESOURCELIST  ParentList,
IN ULONG  MaximumEntries 
)

Definition at line 395 of file resource.cpp.

401{
402 CResourceList* NewList;
403 ULONG ResourceSize;
404
405 if (!OutResourceList || !ParentList || !MaximumEntries)
407
408 /* Allocate new list */
409 NewList = new(PoolType, TAG_PORTCLASS) CResourceList(OuterUnknown);
410 if (!NewList)
412
413 /* Get resource size */
414#ifdef _MSC_VER
415 ResourceSize = FIELD_OFFSET(CM_RESOURCE_LIST, List[0].PartialResourceList.PartialDescriptors[MaximumEntries]);
416#else
417 ResourceSize = sizeof(CM_RESOURCE_LIST) - sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) + (MaximumEntries) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
418#endif
419
420 /* Allocate resource list */
422 if (!NewList->m_TranslatedResourceList)
423 {
424 /* No memory */
425 delete NewList;
427 }
428
429 /* Allocate resource list */
431 if (!NewList->m_UntranslatedResourceList)
432 {
433 /* No memory */
434 delete NewList;
436 }
437
438 /* Copy resource lists */
439 RtlCopyMemory(NewList->m_TranslatedResourceList, ParentList->TranslatedList(), sizeof(CM_RESOURCE_LIST));
440 RtlCopyMemory(NewList->m_UntranslatedResourceList, ParentList->UntranslatedList(), sizeof(CM_RESOURCE_LIST));
441
442 /* Resource list is empty */
445
446 /* Store members */
447 NewList->m_OuterUnknown = OuterUnknown;
448 NewList->m_PoolType = PoolType;
449 NewList->AddRef();
450 NewList->m_NumberOfEntries = 0;
451 NewList->m_MaxEntries = MaximumEntries;
452
453 /* Store result */
454 *OutResourceList = (IResourceList*)NewList;
455
456 /* Done */
457 return STATUS_SUCCESS;
458}
PUNKNOWN m_OuterUnknown
Definition: resource.cpp:36
CM_PARTIAL_RESOURCE_LIST PartialResourceList
Definition: hwresource.cpp:160
CM_FULL_RESOURCE_DESCRIPTOR List[1]
Definition: hwresource.cpp:165

Referenced by AssignResources(), and ProcessResources().

◆ PcNewServiceGroup()

PORTCLASSAPI NTSTATUS NTAPI PcNewServiceGroup ( OUT PSERVICEGROUP OutServiceGroup,
IN PUNKNOWN OuterUnknown  OPTIONAL 
)

Definition at line 303 of file service_group.cpp.

306{
309
310 DPRINT("PcNewServiceGroup entered\n");
311
312 //FIXME support aggregation
313 PC_ASSERT(OuterUnknown == NULL);
314
315 // allocate a service group object
316 This = new(NonPagedPool, TAG_PORTCLASS)CServiceGroup(OuterUnknown);
317
318 if (!This)
319 {
320 // out of memory
322 }
323
324 // request IServiceSink interface
325 Status = This->QueryInterface(IID_IServiceSink, (PVOID*)OutServiceGroup);
326
327 if (!NT_SUCCESS(Status))
328 {
329 // failed to acquire service sink interface
330 delete This;
331 return Status;
332 }
333
334 // done
335 return Status;
336}

Referenced by CMiniportWaveStreamCMI::Init(), and CMiniportStream::Init().

◆ PcRegisterAdapterPowerManagement()

PORTCLASSAPI NTSTATUS NTAPI PcRegisterAdapterPowerManagement ( IN PUNKNOWN  pUnknown,
IN PVOID  pvContext1 
)

Definition at line 16 of file power.cpp.

19{
23 IAdapterPowerManagement * pPower;
24
25 DPRINT("PcRegisterAdapterPowerManagement pUnknown %p pvContext %p\n", pUnknown, pvContext);
27
28 if (!pUnknown || !pvContext)
30
31 pDeviceObject = (PDEVICE_OBJECT)pvContext;
32 DeviceExt = (PPCLASS_DEVICE_EXTENSION)pDeviceObject->DeviceExtension;
33
34 Status = pUnknown->QueryInterface(IID_IAdapterPowerManagement, (PVOID*)&pPower);
35 if (!NT_SUCCESS(Status))
36 {
37 DPRINT1("PcRegisterAdapterPowerManagement no IAdapterPowerManagement interface %x\n", Status);
38 DeviceExt->AdapterPowerManagement = NULL;
39 return STATUS_SUCCESS;
40 }
41
42 DeviceExt->AdapterPowerManagement = pPower;
43 DPRINT("PcRegisterAdapterPowerManagement success %x\n", Status);
44 return STATUS_SUCCESS;
45}
struct _DEVICE_OBJECT * PDEVICE_OBJECT
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
_In_ PNDIS_STRING _In_ PNDIS_STRING _Out_ PDEVICE_OBJECT * pDeviceObject
Definition: ndis.h:4679
IAdapterPowerManagement * AdapterPowerManagement
Definition: private.hpp:406

Referenced by StartDevice().

◆ PcRegisterIoTimeout()

PORTCLASSAPI NTSTATUS NTAPI PcRegisterIoTimeout ( IN PDEVICE_OBJECT  pDeviceObject,
IN PIO_TIMER_ROUTINE  pTimerRoutine,
IN PVOID  pContext 
)

Definition at line 76 of file api.cpp.

80{
82 PTIMER_CONTEXT TimerContext, CurContext;
84 PLIST_ENTRY ListEntry;
85 BOOLEAN bFound;
86 PPCLASS_DEVICE_EXTENSION DeviceExtension;
87
89
90 if (!pDeviceObject || !pDeviceObject->DeviceExtension)
92
93 DeviceExtension = (PPCLASS_DEVICE_EXTENSION)pDeviceObject->DeviceExtension;
94
96 if (!TimerContext)
97 {
98 DPRINT("Failed to allocate memory\n");
100 }
101
102 KeAcquireSpinLock(&DeviceExtension->TimerListLock, &OldIrql);
103
104 ListEntry = DeviceExtension->TimerList.Flink;
105 bFound = FALSE;
106 while(ListEntry != &DeviceExtension->TimerList)
107 {
108 CurContext = (PTIMER_CONTEXT)CONTAINING_RECORD(ListEntry, TIMER_CONTEXT, Entry);
109
110 if (CurContext->Context == pContext && CurContext->pTimerRoutine == pTimerRoutine)
111 {
112 bFound = TRUE;
115 break;
116 }
117 ListEntry = ListEntry->Flink;
118 }
119
120 if (!bFound)
121 {
122 TimerContext->Context = pContext;
123 TimerContext->pTimerRoutine = pTimerRoutine;
124 InsertTailList(&DeviceExtension->TimerList, &TimerContext->Entry);
125 }
126
127 KeReleaseSpinLock(&DeviceExtension->TimerListLock, OldIrql);
128
129 return Status;
130}
#define InsertTailList(ListHead, Entry)
UCHAR KIRQL
Definition: env_spec_w32.h:591
#define KeReleaseSpinLock(sl, irql)
Definition: env_spec_w32.h:627
#define KeAcquireSpinLock(sl, irql)
Definition: env_spec_w32.h:609
struct TIMER_CONTEXT * PTIMER_CONTEXT
PVOID Context
Definition: private.hpp:432
PIO_TIMER_ROUTINE pTimerRoutine
Definition: private.hpp:431
Definition: typedefs.h:120
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778
_In_ PLARGE_INTEGER _In_opt_ PTIMER_APC_ROUTINE _In_opt_ PVOID TimerContext
Definition: zwfuncs.h:430

◆ PcRegisterPhysicalConnection()

PORTCLASSAPI NTSTATUS NTAPI PcRegisterPhysicalConnection ( IN PDEVICE_OBJECT  DeviceObject,
IN PUNKNOWN  FromUnknown,
IN ULONG  FromPin,
IN PUNKNOWN  ToUnknown,
IN ULONG  ToPin 
)

Definition at line 259 of file connection.cpp.

265{
266 DPRINT("PcRegisterPhysicalConnection\n");
268
269 if (!DeviceObject || !FromUnknown || !ToUnknown)
271
272 return RegisterConnection(DeviceObject, FromUnknown, NULL, FromPin, ToUnknown, NULL, ToPin);
273}
NTSTATUS RegisterConnection(IN OUT PDEVICE_OBJECT DeviceObject, IN PUNKNOWN FromUnknown, IN PUNICODE_STRING FromString, IN ULONG FromPin, IN PUNKNOWN ToUnknown, IN PUNICODE_STRING ToString, IN ULONG ToPin)
Definition: connection.cpp:139

Referenced by StartDevice().

◆ PcRegisterPhysicalConnectionFromExternal()

PORTCLASSAPI NTSTATUS NTAPI PcRegisterPhysicalConnectionFromExternal ( IN PDEVICE_OBJECT  DeviceObject,
IN PUNICODE_STRING  FromString,
IN ULONG  FromPin,
IN PUNKNOWN  ToUnknown,
IN ULONG  ToPin 
)

Definition at line 277 of file connection.cpp.

283{
285
286 if (!DeviceObject || !FromString || !ToUnknown)
288
289 return RegisterConnection(DeviceObject, NULL, FromString, FromPin, ToUnknown, NULL, ToPin);
290}

◆ PcRegisterPhysicalConnectionToExternal()

PORTCLASSAPI NTSTATUS NTAPI PcRegisterPhysicalConnectionToExternal ( IN PDEVICE_OBJECT  DeviceObject,
IN PUNKNOWN  FromUnknown,
IN ULONG  FromPin,
IN PUNICODE_STRING  ToString,
IN ULONG  ToPin 
)

Definition at line 294 of file connection.cpp.

300{
302
303 if (!DeviceObject || !FromUnknown || !ToString)
305
306 return RegisterConnection(DeviceObject, FromUnknown, NULL, FromPin, NULL, ToString, ToPin);
307}

◆ PcRegisterSubdevice()

PORTCLASSAPI NTSTATUS NTAPI PcRegisterSubdevice ( IN PDEVICE_OBJECT  DeviceObject,
IN PWCHAR  Name,
IN PUNKNOWN  Unknown 
)

Definition at line 206 of file adapter.cpp.

210{
211 PPCLASS_DEVICE_EXTENSION DeviceExt;
213 ISubdevice *SubDevice;
215 PSUBDEVICE_DESCRIPTOR SubDeviceDescriptor;
216 ULONG Index;
217 UNICODE_STRING RefName;
218 PSYMBOLICLINK_ENTRY SymEntry;
219
220 DPRINT("PcRegisterSubdevice DeviceObject %p Name %S Unknown %p\n", DeviceObject, Name, Unknown);
221
223
224 // check if all parameters are valid
225 if (!DeviceObject || !Name || !Unknown)
226 {
227 DPRINT("PcRegisterSubdevice invalid parameter\n");
229 }
230
231 // get device extension
232 DeviceExt = (PPCLASS_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
233
234 if (!DeviceExt)
235 {
236 // should not happen
238 return STATUS_UNSUCCESSFUL;
239 }
240
241 // look up our undocumented interface
242 Status = Unknown->QueryInterface(IID_ISubdevice, (LPVOID*)&SubDevice);
243 if (!NT_SUCCESS(Status))
244 {
245 DPRINT("No ISubdevice interface\n");
246 // the provided port driver doesnt support ISubdevice
248 }
249
250 // get the subdevice descriptor
251 Status = SubDevice->GetDescriptor(&SubDeviceDescriptor);
252 if (!NT_SUCCESS(Status))
253 {
254 DPRINT("Failed to get subdevice descriptor %x\n", Status);
255 SubDevice->Release();
256 return STATUS_UNSUCCESSFUL;
257 }
258
259 // add an create item to the device header
261 if (!NT_SUCCESS(Status))
262 {
263 // failed to attach
264 SubDevice->Release();
265 DPRINT("KsAddObjectCreateItemToDeviceHeader failed with %x\n", Status);
266 return Status;
267 }
268
269 // initialize reference string
270 RtlInitUnicodeString(&RefName, Name);
271 RtlInitUnicodeString(&SubDeviceDescriptor->RefString, Name);
272
273 for(Index = 0; Index < SubDeviceDescriptor->InterfaceCount; Index++)
274 {
275 // FIXME
276 // check if reference string with that name already exists
277
279 &SubDeviceDescriptor->Interfaces[Index],
280 &RefName,
282
283 if (NT_SUCCESS(Status))
284 {
285 // activate device interface
287 // allocate symbolic link entry
289 if (SymEntry)
290 {
291 // initialize symbolic link item
293 // store item
294 InsertTailList(&SubDeviceDescriptor->SymbolicLinkList, &SymEntry->Entry);
295 }
296 else
297 {
298 // allocating failed
300 }
301 }
302 }
303
304 // release SubDevice reference
305 SubDevice->Release();
306
307 return STATUS_SUCCESS;
308}
KSDDKAPI NTSTATUS NTAPI KsAddObjectCreateItemToDeviceHeader(IN KSDEVICE_HEADER DevHeader, IN PDRIVER_DISPATCH Create, IN PVOID Context, IN PWCHAR ObjectClass, IN PSECURITY_DESCRIPTOR SecurityDescriptor)
Definition: api.c:798
NTSYSAPI void WINAPI DbgBreakPoint(void)
nsrefcnt Release()
if(dx< 0)
Definition: linetemp.h:194
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
Definition: deviface.c:955
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
Definition: deviface.c:1311
NTSTATUS NTAPI PcCreateItemDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
UNICODE_STRING RefString
Definition: interfaces.hpp:221
LIST_ENTRY Entry
Definition: interfaces.hpp:175
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
Definition: wdfdevice.h:3739

Referenced by InstallSubdevice(), and StartDevice().

◆ PcRequestNewPowerState()

PORTCLASSAPI NTSTATUS NTAPI PcRequestNewPowerState ( IN PDEVICE_OBJECT  pDeviceObject,
IN DEVICE_POWER_STATE  RequestedNewState 
)

Definition at line 85 of file power.cpp.

88{
93
95
96 if (!DeviceObject || !RequestedNewState)
98
99 DeviceExt = (PPCLASS_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
101
102 PowerState.DeviceState = RequestedNewState;
104
106 if (NT_SUCCESS(Status))
107 {
109 }
110
111 return Status;
112}
static VOID NTAPI PwrCompletionCallback(IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus)
Definition: power.cpp:73
@ SynchronizationEvent
NTSTATUS NTAPI PoRequestPowerIrp(_In_ PDEVICE_OBJECT DeviceObject, _In_ UCHAR MinorFunction, _In_ POWER_STATE PowerState, _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction, _In_opt_ __drv_aliasesMem PVOID Context, _Outptr_opt_ PIRP *pIrp)
Definition: power.c:659
@ PowerSystemUnspecified
Definition: ntpoapi.h:35
#define IRP_MN_SET_POWER

◆ PcUnregisterAdapterPowerManagement()

PORTCLASSAPI NTSTATUS NTAPI PcUnregisterAdapterPowerManagement ( IN PDEVICE_OBJECT  DeviceObject)

Definition at line 49 of file power.cpp.

51{
53
54 DPRINT("PcUnregisterAdapterPowerManagement pUnknown %p pvContext %p\n", DeviceObject);
56
57 if (!DeviceObject)
59
60 DeviceExt = (PPCLASS_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
61
62 if (DeviceExt->AdapterPowerManagement)
63 {
64 DeviceExt->AdapterPowerManagement->Release();
65 }
66 DeviceExt->AdapterPowerManagement = NULL;
67 return STATUS_SUCCESS;
68}

◆ PcUnregisterIoTimeout()

PORTCLASSAPI NTSTATUS NTAPI PcUnregisterIoTimeout ( IN PDEVICE_OBJECT  pDeviceObject,
IN PIO_TIMER_ROUTINE  pTimerRoutine,
IN PVOID  pContext 
)

Definition at line 134 of file api.cpp.

138{
139 PTIMER_CONTEXT CurContext;
141 PLIST_ENTRY ListEntry;
142 BOOLEAN bFound;
143 PPCLASS_DEVICE_EXTENSION DeviceExtension;
144
146
147 if (!pDeviceObject || !pDeviceObject->DeviceExtension)
149
150 DeviceExtension = (PPCLASS_DEVICE_EXTENSION)pDeviceObject->DeviceExtension;
151
152 KeAcquireSpinLock(&DeviceExtension->TimerListLock, &OldIrql);
153
154 ListEntry = DeviceExtension->TimerList.Flink;
155 bFound = FALSE;
156
157 while(ListEntry != &DeviceExtension->TimerList)
158 {
159 CurContext = (PTIMER_CONTEXT)CONTAINING_RECORD(ListEntry, TIMER_CONTEXT, Entry);
160
161 if (CurContext->Context == pContext && CurContext->pTimerRoutine == pTimerRoutine)
162 {
163 bFound = TRUE;
164 RemoveEntryList(&CurContext->Entry);
165 FreeItem(CurContext, TAG_PORTCLASS);
166 break;
167 }
168 ListEntry = ListEntry->Flink;
169 }
170
171 KeReleaseSpinLock(&DeviceExtension->TimerListLock, OldIrql);
172
173 if (bFound)
174 return STATUS_SUCCESS;
175 else
176 return STATUS_NOT_FOUND;
177}
#define RemoveEntryList(Entry)
Definition: env_spec_w32.h:986
#define STATUS_NOT_FOUND
Definition: shellext.h:72
LIST_ENTRY Entry
Definition: private.hpp:430