ReactOS 0.4.15-dev-7842-g558ab78
swenum.h
Go to the documentation of this file.
1#pragma once
2
3#ifndef _SWENUM_
4#define _SWENUM_
5
6#define IOCTL_SWENUM_INSTALL_INTERFACE \
7 CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x000, METHOD_BUFFERED, FILE_ANY_ACCESS)
8
9#define IOCTL_SWENUM_REMOVE_INTERFACE \
10 CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x001, METHOD_BUFFERED, FILE_ANY_ACCESS)
11
12#define IOCTL_SWENUM_GET_BUS_ID \
13 CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x002, METHOD_NEITHER, FILE_READ_ACCESS)
14
20
21#ifdef _KS_
22#define STATIC_BUSID_SoftwareDeviceEnumerator STATIC_KSMEDIUMSETID_Standard
23#define BUSID_SoftwareDeviceEnumerator KSMEDIUMSETID_Standard
24#else
25#define STATIC_BUSID_SoftwareDeviceEnumerator \
26 0x4747B320L, 0x62CE, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
27#endif /* _KS_ */
28
29#ifdef _NTDDK_
30
31#ifndef _KS_
32
33typedef VOID
34(NTAPI *PFNREFERENCEDEVICEOBJECT)(
36
37typedef VOID
38(NTAPI *PFNDEREFERENCEDEVICEOBJECT)(
40
41typedef NTSTATUS
42(NTAPI *PFNQUERYREFERENCESTRING)(
45
46#endif /* !_KS_ */
47
48#define BUS_INTERFACE_SWENUM_VERSION 0x100
49
50typedef struct _BUS_INTERFACE_SWENUM {
52 PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
53 PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
54 PFNQUERYREFERENCESTRING QueryReferenceString;
55} BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;
56
57#if defined(__cplusplus)
58extern "C" {
59#endif
60
61#ifdef _KS_
62
66KsQuerySoftwareBusInterface(
67 _In_ PDEVICE_OBJECT PnpDeviceObject,
68 _Out_ PBUS_INTERFACE_SWENUM BusInterface);
69
75
77VOID
81
87 _In_ PWSTR BusIdentifier,
88 _In_ PDEVICE_OBJECT BusDeviceObject,
90 _In_opt_ PDEVICE_OBJECT PnpDeviceObject,
92 _In_opt_ PWSTR ServiceRelativePath);
93
99
103NTAPI
106 _Out_ PDEVICE_OBJECT *PnpDeviceObject);
107
111NTAPI
113 _In_ PIRP Irp);
114
118NTAPI
121 _Out_ PBOOLEAN ChildDevice);
122
126NTAPI
128 _In_ PIRP Irp);
129
133NTAPI
137
141NTAPI
145
149NTAPI
153
154#endif /* _KS_ */
155
156#if defined(__cplusplus)
157}
158#endif
159
160#endif /* _NTDDK_ */
161
162#endif /* _SWENUM_ */
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
Definition: Header.h:9
_In_ PIRP Irp
Definition: csq.h:116
#define NTSTATUS
Definition: precomp.h:21
KSDDKAPI NTSTATUS NTAPI KsReferenceSoftwareBusObject(IN KSDEVICE_HEADER Header)
Definition: device.c:780
KSDDKAPI VOID NTAPI KsDereferenceSoftwareBusObject(IN KSDEVICE_HEADER Header)
Definition: device.c:851
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
KSDDKAPI NTSTATUS NTAPI KsInstallBusEnumInterface(PIRP Irp)
Definition: swenum.c:1805
KSDDKAPI NTSTATUS NTAPI KsIsBusEnumChildDevice(IN PDEVICE_OBJECT DeviceObject, OUT PBOOLEAN ChildDevice)
Definition: swenum.c:1864
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumPnpDeviceObject(IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT *PnpDeviceObject)
Definition: swenum.c:1751
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumIdentifier(IN PIRP Irp)
Definition: swenum.c:1403
KSDDKAPI NTSTATUS NTAPI KsServiceBusEnumPnpRequest(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
Definition: swenum.c:2026
KSDDKAPI NTSTATUS NTAPI KsServiceBusEnumCreateRequest(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
Definition: swenum.c:1897
KSDDKAPI NTSTATUS NTAPI KsRemoveBusEnumInterface(IN PIRP Irp)
Definition: swenum.c:2210
KSDDKAPI NTSTATUS NTAPI KsGetBusEnumParentFDOFromChildPDO(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_OBJECT *FunctionalDeviceObject)
Definition: swenum.c:1489
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)
Definition: swenum.c:1521
#define KSDDKAPI
Definition: ks.h:40
#define _Inout_
Definition: ms_sal.h:378
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT * FunctionalDeviceObject
Definition: ndis.h:4641
Definition: scsiwmi.h:51
struct _SWENUM_INSTALL_INTERFACE * PSWENUM_INSTALL_INTERFACE
struct _SWENUM_INSTALL_INTERFACE SWENUM_INSTALL_INTERFACE
uint16_t * PWSTR
Definition: typedefs.h:56
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
uint16_t * PWCHAR
Definition: typedefs.h:56
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
Definition: wdfdevice.h:3630
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
static const GUID InterfaceGuid
Definition: wlanapi.c:25
__wchar_t WCHAR
Definition: xmlstorage.h:180