PortCls.sys, Port Class functions for audio drivers.
Added: trunk/reactos/drivers/dd/portcls.c
Added: trunk/reactos/drivers/dd/portcls.def
Added: trunk/reactos/drivers/dd/portcls.h
Added: trunk/reactos/drivers/dd/portcls.rc
Added: trunk/reactos/drivers/dd/portcls.xml
_____
Added: trunk/reactos/drivers/dd/portcls.c
--- trunk/reactos/drivers/dd/portcls.c 2005-11-24 00:21:42 UTC (rev
19509)
+++ trunk/reactos/drivers/dd/portcls.c 2005-11-24 00:58:47 UTC (rev
19510)
@@ -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;
+}
+
_____
Added: trunk/reactos/drivers/dd/portcls.def
--- trunk/reactos/drivers/dd/portcls.def 2005-11-24 00:21:42 UTC
(rev 19509)
+++ trunk/reactos/drivers/dd/portcls.def 2005-11-24 00:58:47 UTC
(rev 19510)
@@ -0,0 +1,36 @@
+;
+; Exports definition file for portcls.sys
+;
+EXPORTS
+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
+
_____
Added: trunk/reactos/drivers/dd/portcls.h
--- trunk/reactos/drivers/dd/portcls.h 2005-11-24 00:21:42 UTC (rev
19509)
+++ trunk/reactos/drivers/dd/portcls.h 2005-11-24 00:58:47 UTC (rev
19510)
@@ -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
_____
Added: trunk/reactos/drivers/dd/portcls.rc
--- trunk/reactos/drivers/dd/portcls.rc 2005-11-24 00:21:42 UTC (rev
19509)
+++ trunk/reactos/drivers/dd/portcls.rc 2005-11-24 00:58:47 UTC (rev
19510)
@@ -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>
_____
Added: trunk/reactos/drivers/dd/portcls.xml
--- trunk/reactos/drivers/dd/portcls.xml 2005-11-24 00:21:42 UTC
(rev 19509)
+++ trunk/reactos/drivers/dd/portcls.xml 2005-11-24 00:58:47 UTC
(rev 19510)
@@ -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>