mirror of
https://github.com/reactos/reactos.git
synced 2025-01-07 14:51:00 +00:00
merge ksuser.dll from reactx branch to trunk
not all api are implemented. reactx.h header are now in use here svn path=/trunk/; revision=33006
This commit is contained in:
parent
e49e2fcd76
commit
bb681bcfac
5 changed files with 221 additions and 47 deletions
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* KSUSER.DLL - ReactOS User CSA Library
|
* KSUSER.DLL - ReactOS
|
||||||
*
|
*
|
||||||
* Copyright 2008 Dmitry Chapyshev
|
* Copyright 2008 Magnus Olsen and Dmitry Chapyshev
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -18,46 +18,210 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
KSDDKAPI NTSTATUS NTAPI
|
#include "ksuser.h"
|
||||||
KsCreateAllocator(
|
|
||||||
HANDLE ConnectionHandle,
|
NTSTATUS NTAPI KsiCreateObjectType( HANDLE hHandle, PVOID guidstr, PVOID Buffer, ULONG BufferSize, ACCESS_MASK DesiredAccess, PHANDLE phHandle);
|
||||||
PKSALLOCATOR_FRAMING AllocatorFraming,
|
|
||||||
PHANDLE AllocatorHandle)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
KsiCreateObjectType( HANDLE hHandle,
|
||||||
|
PVOID IID,
|
||||||
|
PVOID Buffer,
|
||||||
|
ULONG BufferSize,
|
||||||
|
ACCESS_MASK DesiredAccess,
|
||||||
|
PHANDLE phHandle)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
UNIMPLEMENTED
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
KSDDKAPI NTSTATUS NTAPI
|
/*++
|
||||||
KsCreateClock(
|
* @name KsCreateAllocator
|
||||||
HANDLE ConnectionHandle,
|
* @implemented
|
||||||
PKSCLOCK_CREATE ClockCreate,
|
* The function KsCreateAllocator creates a handle to an allocator for the given sink connection handle
|
||||||
PHANDLE ClockHandle)
|
*
|
||||||
|
* @param HANDLE ConnectionHandle
|
||||||
|
* Handle to the sink connection on which to create the allocator
|
||||||
|
*
|
||||||
|
* @param PKSALLOCATOR_FRAMING AllocatorFraming
|
||||||
|
* the input param we using to alloc our framing
|
||||||
|
*
|
||||||
|
* @param PHANDLE AllocatorHandle
|
||||||
|
* Our new handle that we have alloc
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* Return NTSTATUS error code or sussess code.
|
||||||
|
*
|
||||||
|
* @remarks.
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
|
KSDDKAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
KsCreateAllocator(HANDLE ConnectionHandle,
|
||||||
|
PKSALLOCATOR_FRAMING AllocatorFraming,
|
||||||
|
PHANDLE AllocatorHandle)
|
||||||
|
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return KsiCreateObjectType( ConnectionHandle,
|
||||||
|
KSSTRING_Allocator,
|
||||||
|
(PVOID) AllocatorFraming,
|
||||||
|
sizeof(KSALLOCATOR_FRAMING),
|
||||||
|
GENERIC_READ,
|
||||||
|
AllocatorHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
KSDDKAPI NTSTATUS NTAPI
|
/*++
|
||||||
KsCreatePin(
|
* @name KsCreateClock
|
||||||
HANDLE FilterHandle,
|
* @implemented
|
||||||
PKSPIN_CONNECT Connect,
|
*
|
||||||
ACCESS_MASK DesiredAccess,
|
* The function KsCreateClock creates handle to clock instance
|
||||||
PHANDLE ConnectionHandle)
|
*
|
||||||
|
* @param HANDLE ConnectionHandle
|
||||||
|
* Handle to use to create the clock
|
||||||
|
*
|
||||||
|
* @param PKSCLOCK_CREATE ClockCreate
|
||||||
|
* paramenter to use to create the clock
|
||||||
|
*
|
||||||
|
* @param PHANDLE ClockHandle
|
||||||
|
* The new handle
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* Return NTSTATUS error code or sussess code.
|
||||||
|
*
|
||||||
|
* @remarks.
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
|
KSDDKAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
KsCreateClock(HANDLE ConnectionHandle,
|
||||||
|
PKSCLOCK_CREATE ClockCreate,
|
||||||
|
PHANDLE ClockHandle)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return KsiCreateObjectType( ConnectionHandle,
|
||||||
|
KSSTRING_Clock,
|
||||||
|
(PVOID) ClockCreate,
|
||||||
|
sizeof(KSCLOCK_CREATE),
|
||||||
|
GENERIC_READ,
|
||||||
|
ClockHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
KSDDKAPI NTSTATUS NTAPI
|
/*++
|
||||||
KsCreateTopologyNode(
|
* @name KsCreatePin
|
||||||
HANDLE ParentHandle,
|
* @implemented
|
||||||
PKSNODE_CREATE NodeCreate,
|
*
|
||||||
ACCESS_MASK DesiredAccess,
|
* The function KsCreatePin passes a connection request to device and create pin instance
|
||||||
PHANDLE NodeHandle)
|
*
|
||||||
|
* @param HANDLE FilterHandle
|
||||||
|
* handle of the filter initiating the create request
|
||||||
|
*
|
||||||
|
* @param PKSPIN_CONNECT Connect
|
||||||
|
* Pointer to a KSPIN_CONNECT structure that contains parameters for the requested connection.
|
||||||
|
* This should be followed in memory by a KSDATAFORMAT data structure, describing the data format
|
||||||
|
* requested for the connection.
|
||||||
|
|
||||||
|
* @param ACCESS_MASK DesiredAccess
|
||||||
|
* Desrided access
|
||||||
|
*
|
||||||
|
* @param PHANDLE ConnectionHandle
|
||||||
|
* connection handle passed
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* Return NTSTATUS error code or sussess code.
|
||||||
|
*
|
||||||
|
* @remarks.
|
||||||
|
* The flag in PKSDATAFORMAT is not really document,
|
||||||
|
* to find it u need api mointor allot api and figout
|
||||||
|
* how it works, only flag I have found is the
|
||||||
|
* KSDATAFORMAT_ATTRIBUTES flag, it doing a Align
|
||||||
|
* of LONLONG size, it also round up it.
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
|
|
||||||
|
KSDDKAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
KsCreatePin(HANDLE FilterHandle,
|
||||||
|
PKSPIN_CONNECT Connect,
|
||||||
|
ACCESS_MASK DesiredAccess,
|
||||||
|
PHANDLE ConnectionHandle)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
ULONG BufferSize = sizeof(KSPIN_CONNECT);
|
||||||
|
PKSDATAFORMAT DataFormat = ((PKSDATAFORMAT) ( ((ULONG)Connect) + ((ULONG)sizeof(KSPIN_CONNECT)) ) );
|
||||||
|
|
||||||
|
if (DataFormat->Flags & KSDATAFORMAT_ATTRIBUTES)
|
||||||
|
{
|
||||||
|
BufferSize += (ROUND_UP(DataFormat->FormatSize,sizeof(LONGLONG)) + DataFormat->FormatSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
return KsiCreateObjectType(FilterHandle,
|
||||||
|
KSSTRING_Pin,
|
||||||
|
Connect,
|
||||||
|
BufferSize,
|
||||||
|
DesiredAccess,
|
||||||
|
ConnectionHandle);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
|
* @name KsCreateTopologyNode
|
||||||
|
* @implemented
|
||||||
|
*
|
||||||
|
* The function KsCreateTopologyNode creates a handle to a topology node instance
|
||||||
|
*
|
||||||
|
* @param HANDLE ParentHandle
|
||||||
|
* Handle to parent when want to use when we created the node on
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param PKSNODE_CREATE NodeCreate
|
||||||
|
* topology node parameters to use when it is create
|
||||||
|
*
|
||||||
|
* @param ACCESS_MASK DesiredAccess
|
||||||
|
* Desrided access
|
||||||
|
*
|
||||||
|
* @param PHANDLE NodeHandle
|
||||||
|
* Location for the topology node handle
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* Return NTSTATUS error code or sussess code.
|
||||||
|
*
|
||||||
|
* @remarks.
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
|
KSDDKAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
KsCreateTopologyNode(HANDLE ParentHandle,
|
||||||
|
PKSNODE_CREATE NodeCreate,
|
||||||
|
IN ACCESS_MASK DesiredAccess,
|
||||||
|
OUT PHANDLE NodeHandle)
|
||||||
|
{
|
||||||
|
return KsiCreateObjectType( ParentHandle,
|
||||||
|
KSSTRING_TopologyNode,
|
||||||
|
(PVOID) NodeCreate,
|
||||||
|
sizeof(KSNODE_CREATE),
|
||||||
|
DesiredAccess,
|
||||||
|
NodeHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
APIENTRY
|
||||||
|
DllMain(HANDLE hModule, DWORD ulreason, LPVOID lpReserved)
|
||||||
|
{
|
||||||
|
switch (ulreason)
|
||||||
|
{
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
case DLL_THREAD_ATTACH:
|
||||||
|
case DLL_THREAD_DETACH:
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
LIBRARY ksuser.dll
|
LIBRARY ksuser.dll
|
||||||
EXPORTS
|
EXPORTS
|
||||||
KsCreateAllocator
|
KsCreateAllocator@12
|
||||||
KsCreateClock
|
KsCreateClock@12
|
||||||
KsCreatePin
|
KsCreatePin@16
|
||||||
KsCreateTopologyNode
|
KsCreateTopologyNode@16
|
||||||
; EOF
|
|
||||||
|
|
15
reactos/dll/directx/ksuser/ksuser.h
Normal file
15
reactos/dll/directx/ksuser/ksuser.h
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define _KSDDK_
|
||||||
|
#include <windows.h>
|
||||||
|
#include <reactos/helper.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <ks.h>
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||||
<group>
|
|
||||||
<module name="ksuser" type="win32dll" baseaddress="${BASEADDRESS_KSUSER}" installbase="system32" installname="ksuser.dll" allowwarnings="true">
|
<module name="ksuser" type="win32dll" baseaddress="${BASEADDRESS_KSUSER}" installbase="system32" installname="ksuser.dll" allowwarnings="true">
|
||||||
<importlibrary definition="ksuser.def" />
|
<importlibrary definition="ksuser.def" />
|
||||||
<include base="ksuser">.</include>
|
<include base="ksuser">.</include>
|
||||||
<define name="WINVER">0x600</define>
|
<define name="WINVER">0x600</define>
|
||||||
<define name="_WIN32_WINNT">0x600</define>
|
<define name="_WIN32_WINNT">0x600</define>
|
||||||
<library>advapi32</library>
|
<library>advapi32</library>
|
||||||
<library>kernel32</library>
|
<library>kernel32</library>
|
||||||
<library>ntdll</library>
|
<library>ntdll</library>
|
||||||
<file>ksuser.c</file>
|
<file>ksuser.c</file>
|
||||||
<file>ksuser.rc</file>
|
<file>ksuser.rc</file>
|
||||||
</module>
|
</module>
|
||||||
</group>
|
|
|
@ -1,12 +1,10 @@
|
||||||
|
|
||||||
|
|
||||||
#define REACTOS_VERSION_DLL
|
#define REACTOS_VERSION_DLL
|
||||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS User CSA Library\0"
|
#define REACTOS_STR_FILE_DESCRIPTION "User CSA Library\0"
|
||||||
#define REACTOS_STR_INTERNAL_NAME "ksuser\0"
|
#define REACTOS_STR_INTERNAL_NAME "ksuser.dll\0"
|
||||||
#define REACTOS_STR_ORIGINAL_FILENAME "ksuser.dll\0"
|
#define REACTOS_STR_ORIGINAL_FILENAME "ksuser.dll\0"
|
||||||
|
|
||||||
#define REACTOS_FILEVERSION 5,3,0,900
|
#include <reactos/reactx.h>
|
||||||
#define REACTOS_STR_FILE_VERSION "5.3.0.900"
|
|
||||||
#define REACTOS_PRODUCTVERSION 5,3,0,900
|
|
||||||
#define REACTOS_STR_PRODUCT_VERSION "5.3"
|
|
||||||
|
|
||||||
#include <reactos/version.rc>
|
#include <reactos/version.rc>
|
||||||
|
|
Loading…
Reference in a new issue