ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ddk/swenum.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 3011 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 #ifndef _SWENUM_
2 #define _SWENUM_
3
4 #define IOCTL_SWENUM_INSTALL_INTERFACE CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x000, METHOD_BUFFERED, FILE_ANY_ACCESS)
5 #define IOCTL_SWENUM_REMOVE_INTERFACE CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x001, METHOD_BUFFERED, FILE_ANY_ACCESS)
6 #define IOCTL_SWENUM_GET_BUS_ID CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x002, METHOD_NEITHER, FILE_READ_ACCESS)
7
8 typedef struct _SWENUM_INSTALL_INTERFACE {
9 GUID DeviceId;
10 GUID InterfaceId;
11 WCHAR ReferenceString[1];
12 } SWENUM_INSTALL_INTERFACE, *PSWENUM_INSTALL_INTERFACE;
13
14 #if defined(_KS_)
15 #define STATIC_BUSID_SoftwareDeviceEnumerator STATIC_KSMEDIUMSETID_Standard
16 #define BUSID_SoftwareDeviceEnumerator KSMEDIUMSETID_Standard
17 #else
18 #define STATIC_BUSID_SoftwareDeviceEnumerator \
19 0x4747B320L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
20 #endif /* _KS_ */
21
22 #if defined(_NTDDK_)
23
24 #if !defined(_KS_)
25 typedef VOID (NTAPI *PFNREFERENCEDEVICEOBJECT)(PVOID Context);
26 typedef VOID (NTAPI *PFNDEREFERENCEDEVICEOBJECT)(PVOID Context);
27 typedef NTSTATUS (NTAPI *PFNQUERYREFERENCESTRING)(PVOID Context, PWCHAR *String);
28 #endif /* _KS_ */
29
30 #define BUS_INTERFACE_SWENUM_VERSION 0x100
31
32 typedef struct _BUS_INTERFACE_SWENUM {
33 INTERFACE Interface;
34 PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
35 PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
36 PFNQUERYREFERENCESTRING QueryReferenceString;
37 } BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;
38
39 #if defined(__cplusplus)
40 extern "C" {
41 #endif
42
43 #if defined(_KS_)
44
45 KSDDKAPI
46 NTSTATUS
47 NTAPI
48 KsQuerySoftwareBusInterface(
49 IN PDEVICE_OBJECT PnpDeviceObject,
50 OUT PBUS_INTERFACE_SWENUM BusInterface
51 );
52
53 KSDDKAPI
54 NTSTATUS
55 NTAPI
56 KsReferenceSoftwareBusObject(
57 IN KSDEVICE_HEADER Header
58 );
59
60 KSDDKAPI
61 VOID
62 NTAPI
63 KsDereferenceSoftwareBusObject(
64 IN KSDEVICE_HEADER Header
65 );
66
67 KSDDKAPI
68 NTSTATUS
69 NTAPI
70 KsCreateBusEnumObject(
71 IN PWSTR BusIdentifier,
72 IN PDEVICE_OBJECT BusDeviceObject,
73 IN PDEVICE_OBJECT PhysicalDeviceObject,
74 IN PDEVICE_OBJECT PnpDeviceObject,
75 IN REFGUID InterfaceGuid,
76 IN PWSTR ServiceRelativePath
77 );
78
79 KSDDKAPI
80 NTSTATUS
81 NTAPI
82 KsGetBusEnumIdentifier(
83 IN OUT PIRP Irp
84 );
85
86 KSDDKAPI
87 NTSTATUS
88 NTAPI
89 KsGetBusEnumPnpDeviceObject(
90 IN PDEVICE_OBJECT DeviceObject,
91 OUT PDEVICE_OBJECT *PnpDeviceObject
92 );
93
94 KSDDKAPI
95 NTSTATUS
96 NTAPI
97 KsInstallBusEnumInterface(
98 IN PIRP Irp
99 );
100
101 KSDDKAPI
102 NTSTATUS
103 NTAPI
104 KsIsBusEnumChildDevice(
105 IN PDEVICE_OBJECT DeviceObject,
106 OUT PBOOLEAN ChildDevice
107 );
108
109
110 KSDDKAPI
111 NTSTATUS
112 NTAPI
113 KsRemoveBusEnumInterface(
114 IN PIRP Irp
115 );
116
117 KSDDKAPI
118 NTSTATUS
119 NTAPI
120 KsServiceBusEnumPnpRequest(
121 IN PDEVICE_OBJECT DeviceObject,
122 IN OUT PIRP Irp
123 );
124
125 KSDDKAPI
126 NTSTATUS
127 NTAPI
128 KsServiceBusEnumCreateRequest(
129 IN PDEVICE_OBJECT DeviceObject,
130 IN OUT PIRP Irp
131 );
132
133 KSDDKAPI
134 NTSTATUS
135 NTAPI
136 KsGetBusEnumParentFDOFromChildPDO(
137 IN PDEVICE_OBJECT DeviceObject,
138 OUT PDEVICE_OBJECT *FunctionalDeviceObject
139 );
140
141 #endif /* _KS_ */
142
143 #if defined(__cplusplus)
144 }
145 #endif
146
147 #endif /* _NTDDK_ */
148
149 #endif /* _SWENUM_ */
150