ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

swenum.h
Go to the documentation of this file.
00001 #ifndef _SWENUM_
00002 #define _SWENUM_
00003 
00004 #define IOCTL_SWENUM_INSTALL_INTERFACE CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x000, METHOD_BUFFERED, FILE_ANY_ACCESS)
00005 #define IOCTL_SWENUM_REMOVE_INTERFACE CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x001, METHOD_BUFFERED, FILE_ANY_ACCESS)
00006 #define IOCTL_SWENUM_GET_BUS_ID CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 0x002, METHOD_NEITHER, FILE_READ_ACCESS)
00007 
00008 typedef struct _SWENUM_INSTALL_INTERFACE {
00009   GUID DeviceId;
00010   GUID InterfaceId;
00011   WCHAR ReferenceString[1];
00012 } SWENUM_INSTALL_INTERFACE, *PSWENUM_INSTALL_INTERFACE;
00013 
00014 #if defined(_KS_)
00015 #define STATIC_BUSID_SoftwareDeviceEnumerator STATIC_KSMEDIUMSETID_Standard
00016 #define BUSID_SoftwareDeviceEnumerator KSMEDIUMSETID_Standard
00017 #else
00018 #define STATIC_BUSID_SoftwareDeviceEnumerator \
00019   0x4747B320L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
00020 #endif /* _KS_ */
00021 
00022 #if defined(_NTDDK_)
00023 
00024 #if !defined(_KS_)
00025 typedef VOID (NTAPI *PFNREFERENCEDEVICEOBJECT)(PVOID Context);
00026 typedef VOID (NTAPI *PFNDEREFERENCEDEVICEOBJECT)(PVOID Context);
00027 typedef NTSTATUS (NTAPI *PFNQUERYREFERENCESTRING)(PVOID Context, PWCHAR *String);
00028 #endif /* _KS_ */
00029 
00030 #define BUS_INTERFACE_SWENUM_VERSION    0x100
00031 
00032 typedef struct _BUS_INTERFACE_SWENUM {
00033   INTERFACE Interface;
00034   PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
00035   PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
00036   PFNQUERYREFERENCESTRING QueryReferenceString;
00037 } BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;
00038 
00039 #if defined(__cplusplus)
00040 extern "C" {
00041 #endif
00042 
00043 #if defined(_KS_)
00044 
00045 KSDDKAPI
00046 NTSTATUS
00047 NTAPI
00048 KsQuerySoftwareBusInterface(
00049   IN PDEVICE_OBJECT PnpDeviceObject,
00050   OUT PBUS_INTERFACE_SWENUM BusInterface);
00051 
00052 KSDDKAPI
00053 NTSTATUS
00054 NTAPI
00055 KsReferenceSoftwareBusObject(
00056   IN KSDEVICE_HEADER Header);
00057 
00058 KSDDKAPI
00059 VOID
00060 NTAPI
00061 KsDereferenceSoftwareBusObject(
00062   IN KSDEVICE_HEADER  Header);
00063 
00064 KSDDKAPI
00065 NTSTATUS
00066 NTAPI
00067 KsCreateBusEnumObject(
00068   IN PWSTR BusIdentifier,
00069   IN PDEVICE_OBJECT BusDeviceObject,
00070   IN PDEVICE_OBJECT PhysicalDeviceObject,
00071   IN PDEVICE_OBJECT PnpDeviceObject,
00072   IN REFGUID InterfaceGuid,
00073   IN PWSTR ServiceRelativePath);
00074 
00075 KSDDKAPI
00076 NTSTATUS
00077 NTAPI
00078 KsGetBusEnumIdentifier(
00079   IN OUT PIRP Irp);
00080 
00081 KSDDKAPI
00082 NTSTATUS
00083 NTAPI
00084 KsGetBusEnumPnpDeviceObject(
00085   IN PDEVICE_OBJECT DeviceObject,
00086   OUT PDEVICE_OBJECT *PnpDeviceObject);
00087 
00088 KSDDKAPI
00089 NTSTATUS
00090 NTAPI
00091 KsInstallBusEnumInterface(
00092   IN PIRP Irp);
00093 
00094 KSDDKAPI
00095 NTSTATUS
00096 NTAPI
00097 KsIsBusEnumChildDevice(
00098   IN PDEVICE_OBJECT DeviceObject,
00099   OUT PBOOLEAN ChildDevice);
00100 
00101 KSDDKAPI
00102 NTSTATUS
00103 NTAPI
00104 KsRemoveBusEnumInterface(
00105   IN PIRP Irp);
00106 
00107 KSDDKAPI
00108 NTSTATUS
00109 NTAPI
00110 KsServiceBusEnumPnpRequest(
00111   IN PDEVICE_OBJECT DeviceObject,
00112   IN OUT PIRP Irp);
00113 
00114 KSDDKAPI
00115 NTSTATUS
00116 NTAPI
00117 KsServiceBusEnumCreateRequest(
00118   IN PDEVICE_OBJECT DeviceObject,
00119   IN OUT PIRP Irp);
00120 
00121 KSDDKAPI
00122 NTSTATUS
00123 NTAPI
00124 KsGetBusEnumParentFDOFromChildPDO(
00125   IN PDEVICE_OBJECT DeviceObject,
00126   OUT PDEVICE_OBJECT *FunctionalDeviceObject);
00127 
00128 #endif /* _KS_ */
00129 
00130 #if defined(__cplusplus)
00131 }
00132 #endif
00133 
00134 #endif /* _NTDDK_ */
00135 
00136 #endif /* _SWENUM_ */

Generated on Sat May 26 2012 04:28:57 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.