|
|
#ifndef _SOFTPCIDEVICEH_
#define _SOFTPCIDEVICEH_
#define SoftPCI_GetCurrentConfigSpace(pdn, commonConfig) \
SoftPCI_ReadWriteConfigSpace(pdn, \ 0, \ sizeof(PCI_COMMON_CONFIG), \ commonConfig, \ FALSE \ )
BOOL SoftPCI_GetSlotPathList( IN PPCI_DN Pdn, OUT PULONG SlotCount, OUT PLIST_ENTRY SlotPathList );
BOOL SoftPCI_GetDevicePathList( IN PPCI_DN Pdn, OUT PLIST_ENTRY DevicePathList );
VOID SoftPCI_DestroySlotPathList( PLIST_ENTRY SlotPathList );
PWCHAR SoftPCI_GetPciPathFromDn( IN PPCI_DN Pdn );
VOID SoftPCI_EnumerateDevices( IN PPCI_TREE PciTree, IN PPCI_DN *Pdn, IN DEVNODE Dn, IN PPCI_DN Parent );
BOOL SoftPCI_EnumerateHotplugDevices( IN PPCI_TREE PciTree, IN PPCI_DN ControllerDevnode );
VOID SoftPCI_AddChild( IN PPCI_DN Parent, IN PPCI_DN Child );
VOID SoftPCI_BringHotplugDeviceOnline( IN PPCI_DN PciDn, IN UCHAR SlotNumber );
VOID SoftPCI_TakeHotplugDeviceOffline( IN PPCI_DN PciDn, IN UCHAR SlotNumber );
ULONGLONG SoftPCI_GetLengthFromBar( ULONGLONG BaseAddressRegister );
VOID SoftPCI_CompletePciDevNode( IN PPCI_DN Pdn );
HANDLE SoftPCI_OpenHandleToDriver( VOID );
BOOL SoftPCI_IsBridgeDevice( IN PPCI_DN Pdn );
BOOL SoftPCI_IsSoftPCIDevice( IN PPCI_DN Pdn );
BOOL SoftPCI_IsDevnodePCIRoot( IN DEVNODE Dn, IN BOOL ValidateAll );
BOOL SoftPCI_UpdateDeviceFriendlyName( IN DEVNODE DeviceNode, IN PWCHAR NewName );
VOID SoftPCI_InitializeDevice( IN PSOFTPCI_DEVICE Device, IN SOFTPCI_DEV_TYPE Type );
VOID SoftPCI_InstallScriptDevices( VOID );
BOOL SoftPCI_CreateDevice( IN PVOID CreateDevice, IN ULONG PossibleDeviceMask, IN BOOL PathBasedDevice );
BOOL SoftPCI_DeleteDevice( IN PSOFTPCI_DEVICE Device );
BOOL SoftPCI_ReadWriteConfigSpace( IN PPCI_DN Device, IN ULONG Offset, IN ULONG Length, IN OUT PVOID Buffer, IN BOOL WriteConfig );
#endif
|