- Implement KsReferenceBusObject, KsReferenceSoftwareBusObject, KsDereferenceSoftwareBusObject, KsDereferenceBusObject

svn path=/trunk/; revision=42256
This commit is contained in:
Johannes Anderwald 2009-07-27 18:40:50 +00:00
parent b3ea37e803
commit dd0ab576f9
2 changed files with 89 additions and 40 deletions

View file

@ -624,12 +624,19 @@ KsInitializeDevice(
IN PDEVICE_OBJECT NextDeviceObject, IN PDEVICE_OBJECT NextDeviceObject,
IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL) IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL)
{ {
PDEVICE_EXTENSION DeviceExtension;
PKSIDEVICE_HEADER Header; PKSIDEVICE_HEADER Header;
ULONG Index; ULONG Index;
NTSTATUS Status = STATUS_SUCCESS; NTSTATUS Status = STATUS_SUCCESS;
/* get device extension */
DeviceExtension = (PDEVICE_EXTENSION)FunctionalDeviceObject->DeviceExtension;
/* first allocate device header */ /* first allocate device header */
Status = KsAllocateDeviceHeader((KSDEVICE_HEADER*)&Header, 0, NULL); Status = KsAllocateDeviceHeader((KSDEVICE_HEADER*)&DeviceExtension->DeviceHeader, 0, NULL);
/* point to allocated header */
Header = DeviceExtension->DeviceHeader;
/* check for success */ /* check for success */
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -689,6 +696,85 @@ NTAPI
KsReferenceSoftwareBusObject( KsReferenceSoftwareBusObject(
IN KSDEVICE_HEADER Header) IN KSDEVICE_HEADER Header)
{ {
UNIMPLEMENTED IKsDevice * Device;
return STATUS_NOT_IMPLEMENTED; PKSIDEVICE_HEADER DeviceHeader = (PKSIDEVICE_HEADER)Header;
/* get device interface */
Device = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice;
if (Device)
{
/* reference device interface */
Device->lpVtbl->AddRef(Device);
}
return STATUS_SUCCESS;
}
/*
@unimplemented
*/
KSDDKAPI
NTSTATUS
NTAPI
KsReferenceBusObject(
IN KSDEVICE_HEADER Header)
{
IKsDevice * Device;
PKSIDEVICE_HEADER DeviceHeader = (PKSIDEVICE_HEADER)Header;
/* get device interface */
Device = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice;
if (Device)
{
/* reference device interface */
Device->lpVtbl->AddRef(Device);
}
return STATUS_SUCCESS;
}
/*
@unimplemented
*/
KSDDKAPI
VOID
NTAPI
KsDereferenceBusObject(
IN KSDEVICE_HEADER Header)
{
IKsDevice * Device;
PKSIDEVICE_HEADER DeviceHeader = (PKSIDEVICE_HEADER)Header;
/* get device interface */
Device = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice;
if (Device)
{
/* release device interface */
Device->lpVtbl->Release(Device);
}
}
/*
@unimplemented
*/
KSDDKAPI
VOID
NTAPI
KsDereferenceSoftwareBusObject(
IN KSDEVICE_HEADER Header)
{ IKsDevice * Device;
PKSIDEVICE_HEADER DeviceHeader = (PKSIDEVICE_HEADER)Header;
/* get device interface */
Device = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice;
if (Device)
{
/* release device interface */
Device->lpVtbl->Release(Device);
}
} }

View file

@ -9,43 +9,6 @@
#include "priv.h" #include "priv.h"
/*
@unimplemented
*/
KSDDKAPI
NTSTATUS
NTAPI
KsReferenceBusObject(
IN KSDEVICE_HEADER Header)
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
}
/*
@unimplemented
*/
KSDDKAPI
VOID
NTAPI
KsDereferenceBusObject(
IN KSDEVICE_HEADER Header)
{
UNIMPLEMENTED;
}
/*
@unimplemented
*/
KSDDKAPI
VOID
NTAPI
KsDereferenceSoftwareBusObject(
IN KSDEVICE_HEADER Header)
{
UNIMPLEMENTED;
}
/* /*
@implemented @implemented
*/ */