Replace .def file by a .spec file

svn path=/trunk/; revision=35372
This commit is contained in:
Hervé Poussineau 2008-08-16 10:45:25 +00:00
parent 9fb87bbf79
commit e3847788b9
6 changed files with 167 additions and 171 deletions

View file

@ -95,7 +95,7 @@ KSDDKAPI VOID NTAPI
KsFreeEventList(
IN PFILE_OBJECT FileObject,
IN OUT PLIST_ENTRY EventsList,
IN KSEVENTS_LOCKTYPE EVentsFlags,
IN KSEVENTS_LOCKTYPE EventsFlags,
IN PVOID EventsLock)
{
UNIMPLEMENTED;

View file

@ -1,51 +1,51 @@
/* ===============================================================
Kernel-mode COM
*/
#include <windows.h>
#include <ntddk.h>
#include <ks.h>
#include <kcom.h>
#include <debug.h>
/* http://msdn2.microsoft.com/en-us/library/ms809781.aspx */
COMDDKAPI NTSTATUS NTAPI
KoCreateInstance(
IN REFCLSID ClassId,
IN IUnknown* UnkOuter OPTIONAL,
IN ULONG ClsContext,
IN REFIID InterfaceId,
OUT PVOID* Interface)
{
/* If UnkOuter isn't NULL, it must be IUnknown - TODO: CHECK THIS PARAM */
/* TODO: Check IRQL? */
DPRINT("KoCreateInstance called\n");
if ( ClsContext != CLSCTX_KERNEL_SERVER )
{
DPRINT("FAILED: ClsContext must be CLSCTX_KERNEL_SERVER\n");
return STATUS_INVALID_PARAMETER_3;
}
/*
Find the desired interface and create an instance.
But we also need to supply a
pointer which will be set to a list of available interfaces, to
IoGetDeviceInterfaces.
We can then create a file based on this information and thus talk
to the appropriate device.
Useful references:
http://www.freelists.org/archives/wdmaudiodev/01-2003/msg00023.html
TODO
*/
DPRINT("** FAKING SUCCESS **\n");
return STATUS_SUCCESS;
}
/* ===============================================================
Kernel-mode COM
*/
#include <windows.h>
#include <ntddk.h>
#include <ks.h>
#include <kcom.h>
#include <debug.h>
/* http://msdn2.microsoft.com/en-us/library/ms809781.aspx */
COMDDKAPI NTSTATUS NTAPI
KoCreateInstance(
IN REFCLSID ClassId,
IN IUnknown* UnkOuter OPTIONAL,
IN ULONG ClsContext,
IN REFIID InterfaceId,
OUT PVOID* Interface)
{
/* If UnkOuter isn't NULL, it must be IUnknown - TODO: CHECK THIS PARAM */
/* TODO: Check IRQL? */
DPRINT("KoCreateInstance called\n");
if ( ClsContext != CLSCTX_KERNEL_SERVER )
{
DPRINT("FAILED: ClsContext must be CLSCTX_KERNEL_SERVER\n");
return STATUS_INVALID_PARAMETER_3;
}
/*
Find the desired interface and create an instance.
But we also need to supply a
pointer which will be set to a list of available interfaces, to
IoGetDeviceInterfaces.
We can then create a file based on this information and thus talk
to the appropriate device.
Useful references:
http://www.freelists.org/archives/wdmaudiodev/01-2003/msg00023.html
TODO
*/
DPRINT("** FAKING SUCCESS **\n");
return STATUS_SUCCESS;
}

View file

@ -1,115 +0,0 @@
;
; Exports definition file for ks.sys
;
EXPORTS
KsCreateAllocator@12
KsCreateDefaultAllocator@4
KsValidateAllocatorCreateRequest@8
KsCreateDefaultAllocatorEx@24
KsValidateAllocatorFramingEx@12
KsCreateClock@12
KsCreateDefaultClock@8
KsAllocateDefaultClock@4
KsAllocateDefaultClockEx@28
KsFreeDefaultClock@4
KsValidateClockCreateRequest@8
KsGetDefaultClockState@4
KsSetDefaultClockState@8
KsGetDefaultClockTime@4
KsSetDefaultClockTime@12
KsMethodHandler@12
KsMethodHandlerWithAllocator@20
KsFastMethodHandler@32
KsPropertyHandler@12
KsPropertyHandlerWithAllocator@20
KsUnserializeObjectPropertiesFromRegistry@12
KsFastPropertyHandler@32
KsGenerateEvent@4
KsEnableEventWithAllocator@32
KsGenerateDataEvent@12
KsEnableEvent@24
KsDiscardEvent@4
KsDisableEvent@16
KsFreeEventList@16
KsValidateTopologyNodeCreateRequest@12
KsCreateTopologyNode@16
KsTopologyPropertyHandler@16
KsCreatePin@16
KsValidateConnectRequest@16
KsPinPropertyHandler@20
KsPinDataIntersection@24
KsHandleSizedListQuery@16
KsAcquireResetValue@8
KsAddIrpToCancelableQueue@20
KsAddObjectCreateItemToDeviceHeader@20
KsAddObjectCreateItemToObjectHeader@20
KsAllocateDeviceHeader@12
KsAllocateExtraData@12
KsAllocateObjectCreateItem@16
KsAllocateObjectHeader@20
KsCancelIo@8
KsCancelRoutine@8
KsDefaultDeviceIoCompletion@8
KsDispatchFastIoDeviceControlFailure@36
KsDispatchFastReadFailure@32
; KsDispatchFastWriteFailure@32
KsDispatchInvalidDeviceRequest@8
KsDispatchIrp@8
KsDispatchSpecificMethod@8
KsDispatchSpecificProperty@8
KsForwardAndCatchIrp@16
KsForwardIrp@12
KsFreeDeviceHeader@4
KsFreeObjectHeader@4
KsGetChildCreateParameter@8
KsMoveIrpsOnCancelableQueue@28
KsProbeStreamIrp@12
KsQueryInformationFile@16
KsQueryObjectAccessMask@4
KsQueryObjectCreateItem@4
KsReadFile@32
KsReleaseIrpOnCancelableQueue@8
KsRemoveIrpFromCancelableQueue@16
KsRemoveSpecificIrpFromCancelableQueue@4
KsSetInformationFile@16
KsSetMajorFunctionHandler@8
KsStreamIo@44
KsWriteFile@32
KsRegisterWorker@8
KsUnregisterWorker@4
KsRegisterCountedWorker@12
KsDecrementCountedWorker@4
KsIncrementCountedWorker@4
KsQueueWorkItem@8
KsCacheMedium@12
KsDefaultDispatchPnp@8
KsSetDevicePnpAndBaseObject@12
KsDefaultDispatchPower@8
KsSetPowerDispatch@12
KsReferenceBusObject@4
KsDereferenceBusObject@4
KsFreeObjectCreateItem@8
KsFreeObjectCreateItemsByContext@8
KsLoadResource@24
; KsNullDriverUnload@4
KsPinDataIntersectionEx@32
KsQueryDevicePnpObject@4
KsRecalculateStackDepth@8
KsSetTargetDeviceObject@8
KsSetTargetState@8
KsSynchronousIoControlDevice@32
KsInitializeDriver@12
; Kernel COM
KoCreateInstance@20

View file

@ -4,7 +4,7 @@
<include base="ks">.</include>
<include base="ks">..</include>
<include base="ks">../include</include>
<importlibrary definition="ks.def" />
<importlibrary definition="ks.spec.def" />
<library>ntoskrnl</library>
<define name="BUILDING_KS" />
<define name="_NTDDK_" />
@ -21,4 +21,5 @@
<file>topology.c</file>
<file>worker.c</file>
<file>kcom.c</file>
<file>ks.spec</file>
</module>

View file

@ -0,0 +1,110 @@
@ stdcall KsCreateAllocator(ptr ptr ptr)
@ stdcall KsCreateDefaultAllocator(ptr)
@ stdcall KsValidateAllocatorCreateRequest(ptr ptr)
@ stdcall KsCreateDefaultAllocatorEx(ptr ptr ptr ptr ptr ptr)
@ stdcall KsValidateAllocatorFramingEx(ptr long ptr)
@ stdcall KsCreateClock(ptr ptr ptr)
@ stdcall KsCreateDefaultClock(ptr ptr)
@ stdcall KsAllocateDefaultClock(ptr)
@ stdcall KsAllocateDefaultClockEx(ptr ptr ptr ptr ptr ptr long)
@ stdcall KsFreeDefaultClock(ptr)
@ stdcall KsValidateClockCreateRequest(ptr ptr)
@ stdcall KsGetDefaultClockState(ptr)
@ stdcall KsSetDefaultClockState(ptr long)
@ stdcall KsGetDefaultClockTime(ptr)
@ stdcall KsSetDefaultClockTime(ptr long long)
@ stdcall KsMethodHandler(ptr long ptr)
@ stdcall KsMethodHandlerWithAllocator(ptr long ptr ptr long)
@ stdcall KsFastMethodHandler(ptr ptr long ptr long ptr long ptr)
@ stdcall KsPropertyHandler(ptr long ptr)
@ stdcall KsPropertyHandlerWithAllocator(ptr long ptr ptr long)
@ stdcall KsUnserializeObjectPropertiesFromRegistry(ptr ptr ptr)
@ stdcall KsFastPropertyHandler(ptr ptr long ptr long ptr long ptr)
@ stdcall KsGenerateEvent(ptr)
@ stdcall KsEnableEventWithAllocator(ptr long ptr ptr long ptr ptr long)
@ stdcall KsGenerateDataEvent(ptr long ptr)
@ stdcall KsEnableEvent(ptr long ptr ptr long ptr)
@ stdcall KsDiscardEvent(ptr)
@ stdcall KsDisableEvent(ptr ptr long ptr)
@ stdcall KsFreeEventList(ptr ptr long ptr)
@ stdcall KsValidateTopologyNodeCreateRequest(ptr ptr ptr)
@ stdcall KsCreateTopologyNode(ptr ptr long ptr)
@ stdcall KsTopologyPropertyHandler(ptr ptr ptr ptr)
@ stdcall KsCreatePin(ptr ptr long ptr)
@ stdcall KsValidateConnectRequest(ptr long ptr ptr)
@ stdcall KsPinPropertyHandler(ptr ptr ptr long ptr)
@ stdcall KsPinDataIntersection(ptr ptr ptr long ptr ptr)
@ stdcall KsHandleSizedListQuery(ptr long long ptr)
@ stdcall KsAcquireResetValue(ptr ptr)
@ stdcall KsAddIrpToCancelableQueue(ptr ptr ptr long ptr)
@ stdcall KsAddObjectCreateItemToDeviceHeader(ptr ptr ptr wstr ptr)
@ stdcall KsAddObjectCreateItemToObjectHeader(ptr ptr ptr wstr ptr)
@ stdcall KsAllocateDeviceHeader(ptr long ptr)
@ stdcall KsAllocateExtraData(ptr long ptr)
@ stdcall KsAllocateObjectCreateItem(long ptr long ptr)
@ stdcall KsAllocateObjectHeader(ptr long ptr ptr ptr)
@ stdcall KsCancelIo(ptr ptr)
@ stdcall KsCancelRoutine(ptr ptr)
@ stdcall KsDefaultDeviceIoCompletion(ptr ptr)
@ stdcall KsDispatchFastIoDeviceControlFailure(ptr long ptr long ptr long long ptr ptr)
@ stdcall KsDispatchFastReadFailure(ptr ptr long long long ptr ptr ptr)
; KsDispatchFastWriteFailure@32
@ stdcall KsDispatchInvalidDeviceRequest(ptr ptr)
@ stdcall KsDispatchIrp(ptr ptr)
@ stdcall KsDispatchSpecificMethod(ptr ptr)
@ stdcall KsDispatchSpecificProperty(ptr ptr)
@ stdcall KsForwardAndCatchIrp(ptr ptr ptr long)
@ stdcall KsForwardIrp(ptr ptr long)
@ stdcall KsFreeDeviceHeader(ptr)
@ stdcall KsFreeObjectHeader(ptr)
@ stdcall KsGetChildCreateParameter(ptr ptr)
@ stdcall KsMoveIrpsOnCancelableQueue(ptr ptr ptr ptr long ptr ptr)
@ stdcall KsProbeStreamIrp(ptr long long)
@ stdcall KsQueryInformationFile(ptr ptr long long)
@ stdcall KsQueryObjectAccessMask(ptr)
@ stdcall KsQueryObjectCreateItem(ptr)
@ stdcall KsReadFile(ptr ptr ptr ptr ptr long long long)
@ stdcall KsReleaseIrpOnCancelableQueue(ptr ptr)
@ stdcall KsRemoveIrpFromCancelableQueue(ptr ptr long long)
@ stdcall KsRemoveSpecificIrpFromCancelableQueue(ptr)
@ stdcall KsSetInformationFile(ptr ptr long long)
@ stdcall KsSetMajorFunctionHandler(ptr long)
@ stdcall KsStreamIo(ptr ptr ptr ptr ptr long ptr ptr long long long)
@ stdcall KsWriteFile(ptr ptr ptr ptr ptr long long long)
@ stdcall KsRegisterWorker(long ptr)
@ stdcall KsUnregisterWorker(ptr)
@ stdcall KsRegisterCountedWorker(long ptr ptr)
@ stdcall KsDecrementCountedWorker(ptr)
@ stdcall KsIncrementCountedWorker(ptr)
@ stdcall KsQueueWorkItem(ptr ptr)
@ stdcall KsCacheMedium(ptr ptr long)
@ stdcall KsDefaultDispatchPnp(ptr ptr)
@ stdcall KsSetDevicePnpAndBaseObject(ptr ptr ptr)
@ stdcall KsDefaultDispatchPower(ptr ptr)
@ stdcall KsSetPowerDispatch(ptr ptr ptr)
@ stdcall KsReferenceBusObject(ptr)
@ stdcall KsDereferenceBusObject(ptr)
@ stdcall KsFreeObjectCreateItem(ptr ptr)
@ stdcall KsFreeObjectCreateItemsByContext(ptr ptr)
@ stdcall KsLoadResource(ptr long ptr long ptr ptr)
; KsNullDriverUnload@4
@ stdcall KsPinDataIntersectionEx(ptr ptr ptr long ptr long ptr ptr)
@ stdcall KsQueryDevicePnpObject(ptr)
@ stdcall KsRecalculateStackDepth(ptr long)
@ stdcall KsSetTargetDeviceObject(ptr ptr)
@ stdcall KsSetTargetState(ptr long)
@ stdcall KsSynchronousIoControlDevice(ptr long long ptr long ptr long ptr)
@ stdcall KsInitializeDriver(ptr ptr ptr)
; Kernel COM
@ stdcall KoCreateInstance(ptr ptr long ptr ptr)

View file

@ -223,9 +223,9 @@ KsSynchronousIoControlDevice(
*/
KSDDKAPI NTSTATUS NTAPI
KsInitializeDriver(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath,
IN const KSDEVICE_DESCRIPTOR *Descriptor OPTIONAL
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath,
IN const KSDEVICE_DESCRIPTOR *Descriptor OPTIONAL
)
{
UNIMPLEMENTED;