- Implement IPortTopology::NewRegistryKey, IPortWavePci::NewRegistryKey

- Implement PcRegisterPhysicalConnection, PcRegisterPhysicalConnectionFromExternal, PcRegisterPhysicalConnectionToExternal

svn path=/trunk/; revision=38722
This commit is contained in:
Johannes Anderwald 2009-01-12 15:20:45 +00:00
parent 25b0bc6e8f
commit 0afaa05791
6 changed files with 42 additions and 60 deletions

View file

@ -168,7 +168,8 @@ PcAddAdapterDevice(
RtlZeroMemory(portcls_ext, sizeof(PCExtension));
portcls_ext->PhysicalDeviceObject = PhysicalDeviceObject;
portcls_ext->StartDevice = StartDevice;
InitializeListHead(&portcls_ext->SubDeviceList);
InitializeListHead(&portcls_ext->SubDeviceList);
InitializeListHead(&portcls_ext->PhysicalConnectionList);
status = KsAllocateDeviceHeader(&portcls_ext->KsDeviceHeader, 0, NULL);
if (!NT_SUCCESS(status))

View file

@ -187,7 +187,15 @@ IPortTopology_fnNewRegistryKey(
DPRINT("IPortWaveCyclic_fnNewRegistryKey called w/o initialized\n");
return STATUS_UNSUCCESSFUL;
}
return STATUS_UNSUCCESSFUL;
return PcNewRegistryKey(OutRegistryKey,
OuterUnknown,
RegistryKeyType,
DesiredAccess,
This->pDeviceObject,
NULL,//FIXME
ObjectAttributes,
CreateOptions,
Disposition);
}
static IPortTopologyVtbl vt_IPortTopology =

View file

@ -247,7 +247,23 @@ IPortWavePci_fnNewRegistryKey(
IN ULONG CreateOptions OPTIONAL,
OUT PULONG Disposition OPTIONAL)
{
return STATUS_UNSUCCESSFUL;
IPortWavePciImpl * This = (IPortWavePciImpl*)iface;
if (!This->bInitialized)
{
DPRINT("IPortWaveCyclic_fnNewRegistryKey called w/o initiazed\n");
return STATUS_UNSUCCESSFUL;
}
return PcNewRegistryKey(OutRegistryKey,
OuterUnknown,
RegistryKeyType,
DesiredAccess,
This->pDeviceObject,
NULL,//FIXME
ObjectAttributes,
CreateOptions,
Disposition);
}
NTSTATUS

View file

@ -11,6 +11,7 @@
<library>rtl</library>
<library>hal</library>
<file>api.c</file>
<file>connection.c</file>
<file>dll.c</file>
<file>dma_slave.c</file>
<file>drm_port.c</file>

View file

@ -15,6 +15,7 @@
#include <dmusicks.h>
#include "interfaces.h"
#include <ks.h>
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
#define TAG_PORTCLASS TAG('P', 'C', 'L', 'S')
@ -86,6 +87,17 @@ typedef struct
KSOBJECT_HEADER ObjectHeader;
}SUBDEVICE_ENTRY;
typedef struct
{
LIST_ENTRY Entry;
ISubdevice * FromSubDevice;
LPWSTR FromUnicodeString;
ULONG FromPin;
ISubdevice * ToSubDevice;
LPWSTR ToUnicodeString;
ULONG ToPin;
}PHYSICAL_CONNECTION;
typedef struct
{
@ -96,6 +108,7 @@ typedef struct
IResourceList* resources;
LIST_ENTRY SubDeviceList;
LIST_ENTRY PhysicalConnectionList;
} PCExtension;

View file

@ -51,60 +51,3 @@ PcCompletePendingPropertyRequest(
return STATUS_UNSUCCESSFUL;
}
/* ===============================================================
Physical Connections
*/
/*
* @unimplemented
*/
NTSTATUS NTAPI
PcRegisterPhysicalConnection(
IN PDEVICE_OBJECT DeviceObject,
IN PUNKNOWN FromUnknown,
IN ULONG FromPin,
IN PUNKNOWN ToUnknown,
IN ULONG ToPin)
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
}
/*
* @unimplemented
*/
NTSTATUS NTAPI
PcRegisterPhysicalConnectionFromExternal(
IN PDEVICE_OBJECT DeviceObject,
IN PUNICODE_STRING FromString,
IN ULONG FromPin,
IN PUNKNOWN ToUnknown,
IN ULONG ToPin)
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
}
/*
* @unimplemented
*/
NTSTATUS NTAPI
PcRegisterPhysicalConnectionToExternal(
IN PDEVICE_OBJECT DeviceObject,
IN PUNKNOWN FromUnknown,
IN ULONG FromPin,
IN PUNICODE_STRING ToString,
IN ULONG ToPin)
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
}
/* ===============================================================
Misc
*/
/*
* @unimplemented
*/