PortCls.sys, Port Class functions for audio drivers.
authorJames Tabor <james.tabor@reactos.org>
Thu, 24 Nov 2005 00:58:47 +0000 (00:58 +0000)
committerJames Tabor <james.tabor@reactos.org>
Thu, 24 Nov 2005 00:58:47 +0000 (00:58 +0000)
svn path=/trunk/; revision=19510

reactos/drivers/dd/portcls.c [new file with mode: 0644]
reactos/drivers/dd/portcls.def [new file with mode: 0644]
reactos/drivers/dd/portcls.h [new file with mode: 0644]
reactos/drivers/dd/portcls.rc [new file with mode: 0644]
reactos/drivers/dd/portcls.xml [new file with mode: 0644]

diff --git a/reactos/drivers/dd/portcls.c b/reactos/drivers/dd/portcls.c
new file mode 100644 (file)
index 0000000..3352668
--- /dev/null
@@ -0,0 +1,505 @@
+/*
+ *  ReactOS PortCls Driver
+ *  Copyright (C) 2005 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software Foundation,
+ *  Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA 
+ *
+ *  COPYRIGHT:        See COPYING in the top level directory
+ *  PROJECT:          ReactOS Sound System
+ *  PURPOSE:          Audio Port Class Functions
+ *  FILE:             drivers/dd/sound/portcls/portcls.c
+ *  PROGRAMMERS:
+ *
+ *  REVISION HISTORY:
+ *       21 November 2005   Created James Tabor
+ */
+#include <windows.h>
+#include "portcls.h"
+
+
+#define NDEBUG
+#include <debug.h>
+
+
+NTSTATUS STDCALL
+DriverEntry(PDRIVER_OBJECT DriverObject,
+            PUNICODE_STRING RegistryPath)
+{
+    return STATUS_SUCCESS;
+}
+
+/*
+ * @implemented
+ */
+DWORD STDCALL
+DllInitialize(DWORD Unknown)
+{
+    return 0;
+}
+
+/*
+ * @implemented
+ */
+DWORD STDCALL
+DllUnload(VOID)
+{
+    return 0;
+}
+
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcAddAdapterDevice(
+ DWORD DriverObject,
+ DWORD PhysicalDeviceObject,
+ DWORD StartDevice,
+ DWORD MaxObjects,
+ DWORD DeviceExtensionSize
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcAddContentHandlers(
+ DWORD  ContentId,
+ DWORD  paHandlers,
+ DWORD  NumHandlers
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcCompleteIrp(
+ DWORD  DeviceObject,
+ DWORD  Irp,
+ DWORD  Status
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcCompletePendingPropertyRequest(
+ DWORD PropertyRequest,
+ DWORD NtStatus
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL 
+PcCreateContentMixed(
+ DWORD paContentId,
+ DWORD cContentId,
+ DWORD pMixedContentId
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcDestroyContent(
+ DWORD ContentId
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcDispatchIrp(
+ DWORD DeviceObject,
+ DWORD Irp
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcForwardContentToDeviceObject(
+ DWORD ContentId,
+ DWORD Reserved,
+ DWORD DrmForward
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL 
+PcForwardContentToFileObject(
+ DWORD ContentId,
+ DWORD FileObject
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL 
+PcForwardContentToInterface(
+ DWORD ContentId,
+ DWORD Unknown,
+ DWORD NumMethods
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcForwardIrpSynchronous(
+ DWORD DeviceObject,
+ DWORD Irp 
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL 
+PcGetContentRights(
+ DWORD ContentId,
+ DWORD DrmRights
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcGetDeviceProperty(
+ DWORD DeviceObject,
+ DWORD DeviceProperty,
+ DWORD BufferLength,
+ DWORD PropertyBuffer,
+ DWORD ResultLength
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+ULONGLONG STDCALL
+PcGetTimeInterval(
+  ULONGLONG  Timei
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcInitializeAdapterDriver(
+ DWORD DriverObject,
+ DWORD RegistryPathName,
+ DWORD AddDevice
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewDmaChannel(
+ DWORD OutDmaChannel,
+ DWORD Unknown,
+ DWORD PoolType,
+ DWORD DeviceDescription,
+ DWORD DeviceObject
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewInterruptSync(
+ DWORD OutInterruptSync,
+ DWORD Unknown,
+ DWORD ResourceList,
+ DWORD ResourceIndex,
+ DWORD Mode
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewMiniport(
+ DWORD OutMiniport,
+ DWORD ClassId
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewPort(
+ DWORD OutPort,
+ DWORD ClassId
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewRegistryKey(
+ DWORD OutRegistryKey,
+ DWORD Unknown,
+ DWORD RegistryKeyType,
+ DWORD DesiredAccess,
+ DWORD DeviceObject,
+ DWORD SubDevice,
+ DWORD ObjectAttributes,
+ DWORD CreateOptions,
+ DWORD Disposition
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewResourceList(
+ DWORD OutResourceList,
+ DWORD Unknown,
+ DWORD PoolType,
+ DWORD TranslatedResources,
+ DWORD UntranslatedResources
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewResourceSublist(
+ DWORD OutResourceList,
+ DWORD Unknown,
+ DWORD PoolType,
+ DWORD ParentList,
+ DWORD MaximumEntries
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcNewServiceGroup(
+ DWORD OutServiceGroup,
+ DWORD Unknown
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRegisterAdapterPowerManagement(
+ DWORD Unknown,
+ DWORD pvContext
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRegisterIoTimeout(
+ DWORD pDeviceObject,
+ DWORD pTimerRoutine,
+ DWORD pContext
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRegisterPhysicalConnection(
+ DWORD DeviceObject,
+ DWORD FromUnknown,
+ DWORD FromPin,
+ DWORD ToUnknown,
+ DWORD ToPin
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRegisterPhysicalConnectionFromExternal(
+ DWORD DeviceObject,
+ DWORD FromString,
+ DWORD FromPin,
+ DWORD ToUnknown,
+ DWORD ToPin
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRegisterPhysicalConnectionToExternal(
+ DWORD DeviceObject,
+ DWORD FromUnknown,
+ DWORD FromPin,
+ DWORD ToString,
+ DWORD ToPin
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRegisterSubdevice(
+ DWORD DeviceObject,
+ DWORD SubdevName,
+ DWORD Unknown
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcRequestNewPowerState(
+ DWORD pDeviceObject,
+ DWORD RequestedNewState
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+PcUnregisterIoTimeout(
+ DWORD pDeviceObject,
+ DWORD pTimerRoutine,
+ DWORD pContext
+)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
diff --git a/reactos/drivers/dd/portcls.def b/reactos/drivers/dd/portcls.def
new file mode 100644 (file)
index 0000000..020d310
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+; Exports definition file for portcls.sys\r
+;\r
+EXPORTS\r
+PcAddAdapterDevice@20
+PcAddContentHandlers@12
+PcCompleteIrp@12
+PcCompletePendingPropertyRequest@8
+PcCreateContentMixed@12
+PcDestroyContent@4
+PcDispatchIrp@8
+PcForwardContentToDeviceObject@12
+PcForwardContentToFileObject@8
+PcForwardContentToInterface@12
+PcForwardIrpSynchronous@8
+PcGetContentRights@8
+PcGetDeviceProperty@20
+PcGetTimeInterval@8
+PcInitializeAdapterDriver@12
+PcNewDmaChannel@20
+PcNewInterruptSync@20
+PcNewMiniport@8
+PcNewPort@8
+PcNewRegistryKey@36
+PcNewResourceList@20
+PcNewResourceSublist@20
+PcNewServiceGroup@8
+PcRegisterAdapterPowerManagement@8
+PcRegisterIoTimeout@12
+PcRegisterPhysicalConnection@20
+PcRegisterPhysicalConnectionFromExternal@20
+PcRegisterPhysicalConnectionToExternal@20
+PcRegisterSubdevice@12
+PcRequestNewPowerState@8
+PcUnregisterIoTimeout@12
+
diff --git a/reactos/drivers/dd/portcls.h b/reactos/drivers/dd/portcls.h
new file mode 100644 (file)
index 0000000..49741a5
--- /dev/null
@@ -0,0 +1,252 @@
+/*
+
+    Move to w32api when it is ready.
+
+ */
+#ifndef _PORTCLS_H
+#define _PORTCLS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <windef.h>
+#include <ddk/ntddk.h>
+
+#define PORTCLASSAPI extern
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcAddAdapterDevice(
+ DWORD DriverObject,
+ DWORD PhysicalDeviceObject,
+ DWORD StartDevice,
+ DWORD MaxObjects,
+ DWORD DeviceExtensionSize
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcAddContentHandlers(
+ DWORD  ContentId,
+ DWORD  paHandlers,
+ DWORD  NumHandlers
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcCompleteIrp(
+ DWORD  DeviceObject,
+ DWORD  Irp,
+ DWORD  Status
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcCompletePendingPropertyRequest(
+ DWORD PropertyRequest,
+ DWORD NtStatus
+);
+
+PORTCLASSAPI NTSTATUS STDCALL 
+PcCreateContentMixed(
+ DWORD paContentId,
+ DWORD cContentId,
+ DWORD pMixedContentId
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcDestroyContent(
+ DWORD ContentId
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcDispatchIrp(
+ DWORD DeviceObject,
+ DWORD Irp
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcForwardContentToDeviceObject(
+ DWORD ContentId,
+ DWORD Reserved,
+ DWORD DrmForward
+);
+
+PORTCLASSAPI NTSTATUS STDCALL 
+PcForwardContentToFileObject(
+ DWORD ContentId,
+ DWORD FileObject
+);
+
+PORTCLASSAPI NTSTATUS STDCALL 
+PcForwardContentToInterface(
+ DWORD ContentId,
+ DWORD Unknown,
+ DWORD NumMethods
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcForwardIrpSynchronous(
+ DWORD DeviceObject,
+ DWORD Irp 
+);
+
+PORTCLASSAPI NTSTATUS STDCALL 
+PcGetContentRights(
+ DWORD ContentId,
+ DWORD DrmRights
+); 
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcGetDeviceProperty(
+ DWORD DeviceObject,
+ DWORD DeviceProperty,
+ DWORD BufferLength,
+ DWORD PropertyBuffer,
+ DWORD ResultLength
+);
+
+PORTCLASSAPI ULONGLONG STDCALL
+PcGetTimeInterval(
+  ULONGLONG  Timei
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcInitializeAdapterDriver(
+ DWORD DriverObject,
+ DWORD RegistryPathName,
+ DWORD AddDevice
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewDmaChannel(
+ DWORD OutDmaChannel,
+ DWORD Unknown,
+ DWORD PoolType,
+ DWORD DeviceDescription,
+ DWORD DeviceObject
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewInterruptSync(
+ DWORD OutInterruptSync,
+ DWORD Unknown,
+ DWORD ResourceList,
+ DWORD ResourceIndex,
+ DWORD Mode
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewMiniport(
+ DWORD OutMiniport,
+ DWORD ClassId
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewPort(
+ DWORD OutPort,
+ DWORD ClassId
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewRegistryKey(
+ DWORD OutRegistryKey,
+ DWORD Unknown,
+ DWORD RegistryKeyType,
+ DWORD DesiredAccess,
+ DWORD DeviceObject,
+ DWORD SubDevice,
+ DWORD ObjectAttributes,
+ DWORD CreateOptions,
+ DWORD Disposition
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewResourceList(
+ DWORD OutResourceList,
+ DWORD Unknown,
+ DWORD PoolType,
+ DWORD TranslatedResources,
+ DWORD UntranslatedResources
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewResourceSublist(
+ DWORD OutResourceList,
+ DWORD Unknown,
+ DWORD PoolType,
+ DWORD ParentList,
+ DWORD MaximumEntries
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcNewServiceGroup(
+ DWORD OutServiceGroup,
+ DWORD Unknown
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRegisterAdapterPowerManagement(
+ DWORD Unknown,
+ DWORD pvContext
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRegisterIoTimeout(
+ DWORD pDeviceObject,
+ DWORD pTimerRoutine,
+ DWORD pContext
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRegisterPhysicalConnection(
+ DWORD DeviceObject,
+ DWORD FromUnknown,
+ DWORD FromPin,
+ DWORD ToUnknown,
+ DWORD ToPin
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRegisterPhysicalConnectionFromExternal(
+ DWORD DeviceObject,
+ DWORD FromString,
+ DWORD FromPin,
+ DWORD ToUnknown,
+ DWORD ToPin
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRegisterPhysicalConnectionToExternal(
+ DWORD DeviceObject,
+ DWORD FromUnknown,
+ DWORD FromPin,
+ DWORD ToString,
+ DWORD ToPin
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRegisterSubdevice(
+ DWORD DeviceObject,
+ DWORD SubdevName,
+ DWORD Unknown
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcRequestNewPowerState(
+ DWORD pDeviceObject,
+ DWORD RequestedNewState
+);
+
+PORTCLASSAPI NTSTATUS STDCALL
+PcUnregisterIoTimeout(
+ DWORD pDeviceObject,
+ DWORD pTimerRoutine,
+ DWORD pContext
+);
+
+#ifdef __cplusplus
+}
+#endif                          
+
+#endif
diff --git a/reactos/drivers/dd/portcls.rc b/reactos/drivers/dd/portcls.rc
new file mode 100644 (file)
index 0000000..03edd6d
--- /dev/null
@@ -0,0 +1,5 @@
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION   "PORTCLS Port Class Driver API\0"
+#define REACTOS_STR_INTERNAL_NAME      "portcls\0"
+#define REACTOS_STR_ORIGINAL_FILENAME  "portcls.sys\0"
+#include <reactos/version.rc>
diff --git a/reactos/drivers/dd/portcls.xml b/reactos/drivers/dd/portcls.xml
new file mode 100644 (file)
index 0000000..1b331c1
--- /dev/null
@@ -0,0 +1,8 @@
+<module name="portcls" type="kernelmodedriver" installbase="system32/drivers" installname="portcls.sys">
+        <importlibrary definition="portcls.def" />
+       <define name="__USE_W32API" />
+       <library>ntoskrnl</library>
+       <library>hal</library>
+       <file>portcls.c</file>
+       <file>portcls.rc</file>
+</module>