Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163#pragma once
#ifndef _SWENUM_#define _SWENUM_
#define IOCTL_SWENUM_INSTALL_INTERFACE \ CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x000, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SWENUM_REMOVE_INTERFACE \ CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x001, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SWENUM_GET_BUS_ID \ CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x002, METHOD_NEITHER, FILE_READ_ACCESS)
typedef struct _SWENUM_INSTALL_INTERFACE { GUID DeviceId; GUID InterfaceId; WCHAR ReferenceString[1];} SWENUM_INSTALL_INTERFACE, *PSWENUM_INSTALL_INTERFACE;
#ifdef _KS_#define STATIC_BUSID_SoftwareDeviceEnumerator STATIC_KSMEDIUMSETID_Standard#define BUSID_SoftwareDeviceEnumerator KSMEDIUMSETID_Standard#else#define STATIC_BUSID_SoftwareDeviceEnumerator \ 0x4747B320L, 0x62CE, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}#endif /* _KS_ */
#ifdef _NTDDK_
#ifndef _KS_
typedef VOID(NTAPI *PFNREFERENCEDEVICEOBJECT)( _In_ PVOID Context);
typedef VOID(NTAPI *PFNDEREFERENCEDEVICEOBJECT)( _In_ PVOID Context);
typedef NTSTATUS(NTAPI *PFNQUERYREFERENCESTRING)( _In_ PVOID Context, _Inout_ PWCHAR *String);
#endif /* !_KS_ */
#define BUS_INTERFACE_SWENUM_VERSION 0x100
typedef struct _BUS_INTERFACE_SWENUM { INTERFACE Interface; PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject; PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject; PFNQUERYREFERENCESTRING QueryReferenceString;} BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;
#if defined(__cplusplus)extern "C" {#endif
#ifdef _KS_
KSDDKAPINTSTATUSNTAPIKsQuerySoftwareBusInterface( _In_ PDEVICE_OBJECT PnpDeviceObject, _Out_ PBUS_INTERFACE_SWENUM BusInterface);
KSDDKAPINTSTATUSNTAPIKsReferenceSoftwareBusObject( _In_ KSDEVICE_HEADER Header);
KSDDKAPIVOIDNTAPIKsDereferenceSoftwareBusObject( _In_ KSDEVICE_HEADER Header);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsCreateBusEnumObject( _In_ PWSTR BusIdentifier, _In_ PDEVICE_OBJECT BusDeviceObject, _In_ PDEVICE_OBJECT PhysicalDeviceObject, _In_opt_ PDEVICE_OBJECT PnpDeviceObject, _In_opt_ REFGUID InterfaceGuid, _In_opt_ PWSTR ServiceRelativePath);
KSDDKAPINTSTATUSNTAPIKsGetBusEnumIdentifier( _Inout_ PIRP Irp);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsGetBusEnumPnpDeviceObject( _In_ PDEVICE_OBJECT DeviceObject, _Out_ PDEVICE_OBJECT *PnpDeviceObject);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsInstallBusEnumInterface( _In_ PIRP Irp);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsIsBusEnumChildDevice( _In_ PDEVICE_OBJECT DeviceObject, _Out_ PBOOLEAN ChildDevice);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsRemoveBusEnumInterface( _In_ PIRP Irp);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsServiceBusEnumPnpRequest( _In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsServiceBusEnumCreateRequest( _In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp);
_IRQL_requires_max_(PASSIVE_LEVEL)KSDDKAPINTSTATUSNTAPIKsGetBusEnumParentFDOFromChildPDO( _In_ PDEVICE_OBJECT DeviceObject, _Out_ PDEVICE_OBJECT *FunctionalDeviceObject);
#endif /* _KS_ */
#if defined(__cplusplus)}#endif
#endif /* _NTDDK_ */
#endif /* _SWENUM_ */