- Implement PcRegisterPhysicalConnection, PcRegisterPhysicalConnectionFromExternal, PcRegisterPhysicalConnectionToExternal
svn path=/trunk/; revision=38722
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))
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 =
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
<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>
#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')
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
{
IResourceList* resources;
LIST_ENTRY SubDeviceList;
+ LIST_ENTRY PhysicalConnectionList;
} PCExtension;
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
- */