6#define IOCTL_SWENUM_INSTALL_INTERFACE \
7 CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x000, METHOD_BUFFERED, FILE_ANY_ACCESS)
9#define IOCTL_SWENUM_REMOVE_INTERFACE \
10 CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x001, METHOD_BUFFERED, FILE_ANY_ACCESS)
12#define IOCTL_SWENUM_GET_BUS_ID \
13 CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x002, METHOD_NEITHER, FILE_READ_ACCESS)
22#define STATIC_BUSID_SoftwareDeviceEnumerator STATIC_KSMEDIUMSETID_Standard
23#define BUSID_SoftwareDeviceEnumerator KSMEDIUMSETID_Standard
25#define STATIC_BUSID_SoftwareDeviceEnumerator \
26 0x4747B320L, 0x62CE, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
34(
NTAPI *PFNREFERENCEDEVICEOBJECT)(
38(
NTAPI *PFNDEREFERENCEDEVICEOBJECT)(
42(
NTAPI *PFNQUERYREFERENCESTRING)(
48#define BUS_INTERFACE_SWENUM_VERSION 0x100
50typedef struct _BUS_INTERFACE_SWENUM {
52 PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
53 PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
54 PFNQUERYREFERENCESTRING QueryReferenceString;
55} BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;
57#if defined(__cplusplus)
66KsQuerySoftwareBusInterface(
68 _Out_ PBUS_INTERFACE_SWENUM BusInterface);
156#if defined(__cplusplus)
PDEVICE_OBJECT PhysicalDeviceObject
KSDDKAPI NTSTATUS NTAPI KsReferenceSoftwareBusObject(IN KSDEVICE_HEADER Header)
KSDDKAPI VOID NTAPI KsDereferenceSoftwareBusObject(IN KSDEVICE_HEADER Header)
#define _IRQL_requires_max_(irql)
KSDDKAPI NTSTATUS NTAPI KsInstallBusEnumInterface(PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsIsBusEnumChildDevice(IN PDEVICE_OBJECT DeviceObject, OUT PBOOLEAN ChildDevice)
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumPnpDeviceObject(IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT *PnpDeviceObject)
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumIdentifier(IN PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsServiceBusEnumPnpRequest(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsServiceBusEnumCreateRequest(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsRemoveBusEnumInterface(IN PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumParentFDOFromChildPDO(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_OBJECT *FunctionalDeviceObject)
KSDDKAPI NTSTATUS NTAPI KsCreateBusEnumObject(IN PWCHAR BusIdentifier, IN PDEVICE_OBJECT BusDeviceObject, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_OBJECT PnpDeviceObject OPTIONAL, IN REFGUID InterfaceGuid OPTIONAL, IN PWCHAR ServiceRelativePath OPTIONAL)
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT * FunctionalDeviceObject
struct _SWENUM_INSTALL_INTERFACE * PSWENUM_INSTALL_INTERFACE
struct _SWENUM_INSTALL_INTERFACE SWENUM_INSTALL_INTERFACE
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
static const GUID InterfaceGuid