mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 21:45:41 +00:00
- Implement KsReferenceBusObject, KsReferenceSoftwareBusObject, KsDereferenceSoftwareBusObject, KsDereferenceBusObject
svn path=/trunk/; revision=42256
This commit is contained in:
parent
b3ea37e803
commit
dd0ab576f9
2 changed files with 89 additions and 40 deletions
|
@ -624,12 +624,19 @@ KsInitializeDevice(
|
|||
IN PDEVICE_OBJECT NextDeviceObject,
|
||||
IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL)
|
||||
{
|
||||
PDEVICE_EXTENSION DeviceExtension;
|
||||
PKSIDEVICE_HEADER Header;
|
||||
ULONG Index;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
/* get device extension */
|
||||
DeviceExtension = (PDEVICE_EXTENSION)FunctionalDeviceObject->DeviceExtension;
|
||||
|
||||
/* 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 */
|
||||
if (!NT_SUCCESS(Status))
|
||||
|
@ -689,6 +696,85 @@ NTAPI
|
|||
KsReferenceSoftwareBusObject(
|
||||
IN KSDEVICE_HEADER Header)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
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
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,43 +9,6 @@
|
|||
|
||||
#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
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue