Author: janderwald
Date: Mon Aug 3 21:41:56 2009
New Revision: 42373
URL:
http://svn.reactos.org/svn/reactos?rev=42373&view=rev
Log:
- Add swenum.h (written from scratch)
Added:
trunk/reactos/include/ddk/swenum.h (with props)
Added: trunk/reactos/include/ddk/swenum.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/swenum.h?rev=4…
==============================================================================
--- trunk/reactos/include/ddk/swenum.h (added)
+++ trunk/reactos/include/ddk/swenum.h [iso-8859-1] Mon Aug 3 21:41:56 2009
@@ -1,0 +1,153 @@
+#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;
+
+#if defined(_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
+
+#if defined(_NTDDK_)
+
+
+#if !defined(_KS_)
+
+typedef VOID (NTAPI *PFNREFERENCEDEVICEOBJECT)(PVOID Context);
+typedef VOID (NTAPI *PFNDEREFERENCEDEVICEOBJECT)(PVOID Context);
+typedef NTSTATUS (NTAPI *PFNQUERYREFERENCESTRING)(PVOID Context, PWCHAR *String);
+
+#endif
+
+#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
+
+#if defined(_KS_)
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsQuerySoftwareBusInterface(
+ IN PDEVICE_OBJECT PnpDeviceObject,
+ OUT PBUS_INTERFACE_SWENUM BusInterface
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsReferenceSoftwareBusObject(
+ IN KSDEVICE_HEADER Header
+);
+
+KSDDKAPI
+VOID
+NTAPI
+KsDereferenceSoftwareBusObject(
+ IN KSDEVICE_HEADER Header
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsCreateBusEnumObject(
+ IN PWSTR BusIdentifier,
+ IN PDEVICE_OBJECT BusDeviceObject,
+ IN PDEVICE_OBJECT PhysicalDeviceObject,
+ IN PDEVICE_OBJECT PnpDeviceObject,
+ IN REFGUID InterfaceGuid,
+ IN PWSTR ServiceRelativePath
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsGetBusEnumIdentifier(
+ IN OUT PIRP Irp
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsGetBusEnumPnpDeviceObject(
+ IN PDEVICE_OBJECT DeviceObject,
+ OUT PDEVICE_OBJECT *PnpDeviceObject
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsInstallBusEnumInterface(
+ IN PIRP Irp
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsIsBusEnumChildDevice(
+ IN PDEVICE_OBJECT DeviceObject,
+ OUT PBOOLEAN ChildDevice
+);
+
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsRemoveBusEnumInterface(
+ IN PIRP Irp
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsServiceBusEnumPnpRequest(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN OUT PIRP Irp
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsServiceBusEnumCreateRequest(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN OUT PIRP Irp
+);
+
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsGetBusEnumParentFDOFromChildPDO(
+ IN PDEVICE_OBJECT DeviceObject,
+ OUT PDEVICE_OBJECT *FunctionalDeviceObject
+);
+
+#endif
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
+#endif
+
Propchange: trunk/reactos/include/ddk/swenum.h
------------------------------------------------------------------------------
svn:eol-style = native