Mercurial > games > semicongine
comparison fuhtark_test/include/ddk/swenum.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 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 | |
| 13 } SWENUM_INSTALL_INTERFACE, *PSWENUM_INSTALL_INTERFACE; | |
| 14 | |
| 15 #if defined(_KS_) | |
| 16 #define STATIC_BUSID_SoftwareDeviceEnumerator STATIC_KSMEDIUMSETID_Standard | |
| 17 #define BUSID_SoftwareDeviceEnumerator KSMEDIUMSETID_Standard | |
| 18 #else | |
| 19 #define STATIC_BUSID_SoftwareDeviceEnumerator \ | |
| 20 0x4747B320L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 | |
| 21 #endif | |
| 22 | |
| 23 #if defined(_NTDDK_) | |
| 24 | |
| 25 | |
| 26 #if !defined(_KS_) | |
| 27 | |
| 28 typedef VOID (NTAPI *PFNREFERENCEDEVICEOBJECT)(PVOID Context); | |
| 29 typedef VOID (NTAPI *PFNDEREFERENCEDEVICEOBJECT)(PVOID Context); | |
| 30 typedef NTSTATUS (NTAPI *PFNQUERYREFERENCESTRING)(PVOID Context, PWCHAR *String); | |
| 31 | |
| 32 #endif | |
| 33 | |
| 34 #define BUS_INTERFACE_SWENUM_VERSION 0x100 | |
| 35 | |
| 36 typedef struct _BUS_INTERFACE_SWENUM | |
| 37 { | |
| 38 INTERFACE Interface; | |
| 39 PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject; | |
| 40 PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject; | |
| 41 PFNQUERYREFERENCESTRING QueryReferenceString; | |
| 42 } BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM; | |
| 43 | |
| 44 #if defined(__cplusplus) | |
| 45 extern "C" { | |
| 46 #endif | |
| 47 | |
| 48 #if defined(_KS_) | |
| 49 | |
| 50 KSDDKAPI | |
| 51 NTSTATUS | |
| 52 NTAPI | |
| 53 KsQuerySoftwareBusInterface( | |
| 54 IN PDEVICE_OBJECT PnpDeviceObject, | |
| 55 OUT PBUS_INTERFACE_SWENUM BusInterface | |
| 56 ); | |
| 57 | |
| 58 KSDDKAPI | |
| 59 NTSTATUS | |
| 60 NTAPI | |
| 61 KsReferenceSoftwareBusObject( | |
| 62 IN KSDEVICE_HEADER Header | |
| 63 ); | |
| 64 | |
| 65 KSDDKAPI | |
| 66 VOID | |
| 67 NTAPI | |
| 68 KsDereferenceSoftwareBusObject( | |
| 69 IN KSDEVICE_HEADER Header | |
| 70 ); | |
| 71 | |
| 72 KSDDKAPI | |
| 73 NTSTATUS | |
| 74 NTAPI | |
| 75 KsCreateBusEnumObject( | |
| 76 IN PWSTR BusIdentifier, | |
| 77 IN PDEVICE_OBJECT BusDeviceObject, | |
| 78 IN PDEVICE_OBJECT PhysicalDeviceObject, | |
| 79 IN PDEVICE_OBJECT PnpDeviceObject, | |
| 80 IN REFGUID InterfaceGuid, | |
| 81 IN PWSTR ServiceRelativePath | |
| 82 ); | |
| 83 | |
| 84 KSDDKAPI | |
| 85 NTSTATUS | |
| 86 NTAPI | |
| 87 KsGetBusEnumIdentifier( | |
| 88 IN OUT PIRP Irp | |
| 89 ); | |
| 90 | |
| 91 KSDDKAPI | |
| 92 NTSTATUS | |
| 93 NTAPI | |
| 94 KsGetBusEnumPnpDeviceObject( | |
| 95 IN PDEVICE_OBJECT DeviceObject, | |
| 96 OUT PDEVICE_OBJECT *PnpDeviceObject | |
| 97 ); | |
| 98 | |
| 99 KSDDKAPI | |
| 100 NTSTATUS | |
| 101 NTAPI | |
| 102 KsInstallBusEnumInterface( | |
| 103 IN PIRP Irp | |
| 104 ); | |
| 105 | |
| 106 KSDDKAPI | |
| 107 NTSTATUS | |
| 108 NTAPI | |
| 109 KsIsBusEnumChildDevice( | |
| 110 IN PDEVICE_OBJECT DeviceObject, | |
| 111 OUT PBOOLEAN ChildDevice | |
| 112 ); | |
| 113 | |
| 114 | |
| 115 KSDDKAPI | |
| 116 NTSTATUS | |
| 117 NTAPI | |
| 118 KsRemoveBusEnumInterface( | |
| 119 IN PIRP Irp | |
| 120 ); | |
| 121 | |
| 122 KSDDKAPI | |
| 123 NTSTATUS | |
| 124 NTAPI | |
| 125 KsServiceBusEnumPnpRequest( | |
| 126 IN PDEVICE_OBJECT DeviceObject, | |
| 127 IN OUT PIRP Irp | |
| 128 ); | |
| 129 | |
| 130 KSDDKAPI | |
| 131 NTSTATUS | |
| 132 NTAPI | |
| 133 KsServiceBusEnumCreateRequest( | |
| 134 IN PDEVICE_OBJECT DeviceObject, | |
| 135 IN OUT PIRP Irp | |
| 136 ); | |
| 137 | |
| 138 KSDDKAPI | |
| 139 NTSTATUS | |
| 140 NTAPI | |
| 141 KsGetBusEnumParentFDOFromChildPDO( | |
| 142 IN PDEVICE_OBJECT DeviceObject, | |
| 143 OUT PDEVICE_OBJECT *FunctionalDeviceObject | |
| 144 ); | |
| 145 | |
| 146 #endif | |
| 147 | |
| 148 #if defined(__cplusplus) | |
| 149 } | |
| 150 #endif | |
| 151 #endif | |
| 152 #endif | |
| 153 |
