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 50 typedef struct _BUS_INTERFACE_SWENUM {
52 PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
53 PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
54 PFNQUERYREFERENCESTRING QueryReferenceString;
55 } BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;
57 #if defined(__cplusplus) 66 KsQuerySoftwareBusInterface(
68 _Out_ PBUS_INTERFACE_SWENUM BusInterface);
156 #if defined(__cplusplus) KSDDKAPI NTSTATUS NTAPI KsRemoveBusEnumInterface(IN PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsReferenceSoftwareBusObject(IN KSDEVICE_HEADER Header)
KSDDKAPI VOID NTAPI KsDereferenceSoftwareBusObject(IN KSDEVICE_HEADER Header)
PDEVICE_OBJECT PhysicalDeviceObject
KSDDKAPI NTSTATUS NTAPI KsServiceBusEnumCreateRequest(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct _SWENUM_INSTALL_INTERFACE * PSWENUM_INSTALL_INTERFACE
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumIdentifier(IN PIRP Irp)
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)
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumParentFDOFromChildPDO(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_OBJECT *FunctionalDeviceObject)
static const GUID InterfaceGuid
KSDDKAPI NTSTATUS NTAPI KsServiceBusEnumPnpRequest(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumPnpDeviceObject(IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT *PnpDeviceObject)
KSDDKAPI NTSTATUS NTAPI KsInstallBusEnumInterface(PIRP Irp)
#define _IRQL_requires_max_(irql)
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
KSDDKAPI NTSTATUS NTAPI KsIsBusEnumChildDevice(IN PDEVICE_OBJECT DeviceObject, OUT PBOOLEAN ChildDevice)
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT * FunctionalDeviceObject
struct tagContext Context
struct _SWENUM_INSTALL_INTERFACE SWENUM_INSTALL_INTERFACE