diff --git a/reactos/drivers/dd/portcls.c b/reactos/drivers/dd/portcls.c new file mode 100644 index 00000000000..33526687ab9 --- /dev/null +++ b/reactos/drivers/dd/portcls.c @@ -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 +#include "portcls.h" + + +#define NDEBUG +#include + + +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 index 00000000000..020d3104d73 --- /dev/null +++ b/reactos/drivers/dd/portcls.def @@ -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 + diff --git a/reactos/drivers/dd/portcls.h b/reactos/drivers/dd/portcls.h new file mode 100644 index 00000000000..49741a57f7a --- /dev/null +++ b/reactos/drivers/dd/portcls.h @@ -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 +#include + +#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 index 00000000000..03edd6d1341 --- /dev/null +++ b/reactos/drivers/dd/portcls.rc @@ -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 diff --git a/reactos/drivers/dd/portcls.xml b/reactos/drivers/dd/portcls.xml new file mode 100644 index 00000000000..1b331c16eb8 --- /dev/null +++ b/reactos/drivers/dd/portcls.xml @@ -0,0 +1,8 @@ + + + + ntoskrnl + hal + portcls.c + portcls.rc +