Re: Did you try ReactOS?
- From: Vetzak <ptrshrn@xxxxxxxxx>
- Date: Tue, 15 Jan 2008 04:32:03 -0800 (PST)
On Jan 15, 12:34 pm, "Volodymyr Shcherbyna"
<v_scherb...@xxxxxxxxxxxxxxx> wrote:
Hello Aleksey,
Obviously, those are public-available header files, and individual
function
definitions, structures and defines can't be copyrighted or patented.
It's not really legal to fully *copy-paste* those header files, so a
concept
of "retyping" (which is legal) was introduced, if I don't mistake, by
MinGW
team. And thus we utilize that too.
OK, but the source code of XP SP ObOpenObjectByName function is definitely
not public. Recently I encountered, that ReactOS version of
ObOpenObjectByName
(http://www.reactos.org/generated/doxygen/d4/df6/obhandle_8c.html) is
suspiciously similar to Microsoft version of this function. The same
structure, rephrased comments, a little bit changed the name of internal
functions, but the structure, and logics is the same.
Personally, I don't have any issues againts ReactOS project, I just constate
the facts.
Good luck,
--
Volodymyr"Aleksey Bragin" <AlekseyBra...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:0D71E10D-4549-46B3-9879-2CB6407C623A@xxxxxxxxxxxxxxxx
Hi Volodymyr,
Obviously, those are public-available header files, and individual
function
definitions, structures and defines can't be copyrighted or patented.
It's not really legal to fully *copy-paste* those header files, so a
concept
of "retyping" (which is legal) was introduced, if I don't mistake, by
MinGW
team. And thus we utilize that too.
With the best regards,
Aleksey Bragin
ReactOS Project Lead
http://www.reactos.org
Email: aleksey at reactos dot org
"Volodymyr Shcherbyna" wrote:
Actually, I am the one, who was talking about those "strange" and "weird"
TDI simularities.
Aleksey, take a look at your version of Microsoft WinDDK TDI.H include
file,
in my case the path is C:\WinDDK\6000\inc\api\tdi.h
Then, take a look at ReacOS version of include file:
ReactOS-0.3.3-REL-src\ReactOS-0.3.3\include\ddk\TDI.H
Browse over definitions. Look for several defines for tags,
{MICROSOFT
// These are tags that transports pass to ndis as a first param of
NdisAllocatePacketPoolEx
// api. Ndis uses this as pooltag for allocating packet pools for that
transport.
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN'
#define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN'
#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN'
}
{ReacOS
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN'
#define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN'
#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN'
}
Look at several structures,
{MICROSOFT
typedef UNALIGNED struct _TA_ADDRESS {
USHORT AddressLength; // length in bytes of Address[] in this
USHORT AddressType; // type of this address
UCHAR Address[1]; // actually AddressLength bytes long
} TA_ADDRESS, *PTA_ADDRESS;
}
{ReacOS
typedef struct _TA_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} TA_ADDRESS, *PTA_ADDRESS;
}
Look at defines for strings,
{MICROSOFT
//
// define some names for the EAs so people don't have to make them up.
//
#define TdiTransportAddress "TransportAddress"
#define TdiConnectionContext "ConnectionContext"
#define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof (TdiTransportAddress) - 1)
#define TDI_CONNECTION_CONTEXT_LENGTH (sizeof (TdiConnectionContext) - 1)
}
{ReacOS
#define TdiTransportAddress "TransportAddress"
#define TdiConnectionContext "ConnectionContext"
#define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) -
1)
#define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) -
1)
}
Look at address types,
{MICROSOFT
//
// Known Address types
//
#define TDI_ADDRESS_TYPE_UNSPEC ((USHORT)0) // unspecified
#define TDI_ADDRESS_TYPE_UNIX ((USHORT)1) // local to host (pipes,
portals)
#define TDI_ADDRESS_TYPE_IP ((USHORT)2) // internetwork: UDP,
TCP,
etc.
#define TDI_ADDRESS_TYPE_IMPLINK ((USHORT)3) // arpanet imp addresses
#define TDI_ADDRESS_TYPE_PUP ((USHORT)4) // pup protocols: e.g.
BSP
#define TDI_ADDRESS_TYPE_CHAOS ((USHORT)5) // mit CHAOS protocols
#define TDI_ADDRESS_TYPE_NS ((USHORT)6) // XEROX NS protocols
#define TDI_ADDRESS_TYPE_IPX ((USHORT)6) // Netware IPX
#define TDI_ADDRESS_TYPE_NBS ((USHORT)7) // nbs protocols
#define TDI_ADDRESS_TYPE_ECMA ((USHORT)8) // european computer
manufacturers
#define TDI_ADDRESS_TYPE_DATAKIT ((USHORT)9) // datakit protocols
#define TDI_ADDRESS_TYPE_CCITT ((USHORT)10) // CCITT protocols, X.25
etc
#define TDI_ADDRESS_TYPE_SNA ((USHORT)11) // IBM SNA
#define TDI_ADDRESS_TYPE_DECnet ((USHORT)12) // DECnet
#define TDI_ADDRESS_TYPE_DLI ((USHORT)13) // Direct data link
interface
#define TDI_ADDRESS_TYPE_LAT ((USHORT)14) // LAT
#define TDI_ADDRESS_TYPE_HYLINK ((USHORT)15) // NSC Hyperchannel
#define TDI_ADDRESS_TYPE_APPLETALK ((USHORT)16) // AppleTalk
#define TDI_ADDRESS_TYPE_NETBIOS ((USHORT)17) // Netbios Addresses
#define TDI_ADDRESS_TYPE_8022 ((USHORT)18) //
#define TDI_ADDRESS_TYPE_OSI_TSAP ((USHORT)19) //
#define TDI_ADDRESS_TYPE_NETONE ((USHORT)20) // for WzMail
#define TDI_ADDRESS_TYPE_VNS ((USHORT)21) // Banyan VINES IP
#define TDI_ADDRESS_TYPE_NETBIOS_EX ((USHORT)22) // NETBIOS address
extensions
#define TDI_ADDRESS_TYPE_IP6 ((USHORT)23) // IP version 6
#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX ((USHORT)24) // WCHAR
Netbios address
}
{ReacOS
#define TDI_ADDRESS_TYPE_UNSPEC 0
#define TDI_ADDRESS_TYPE_UNIX 1
#define TDI_ADDRESS_TYPE_IP 2
#define TDI_ADDRESS_TYPE_IMPLINK 3
#define TDI_ADDRESS_TYPE_PUP 4
#define TDI_ADDRESS_TYPE_CHAOS 5
#define TDI_ADDRESS_TYPE_NS 6
#define TDI_ADDRESS_TYPE_IPX 6
#define TDI_ADDRESS_TYPE_NBS 7
#define TDI_ADDRESS_TYPE_ECMA 8
#define TDI_ADDRESS_TYPE_DATAKIT 9
#define TDI_ADDRESS_TYPE_CCITT 10
#define TDI_ADDRESS_TYPE_SNA 11
#define TDI_ADDRESS_TYPE_DECnet 12
#define TDI_ADDRESS_TYPE_DLI 13
#define TDI_ADDRESS_TYPE_LAT 14
#define TDI_ADDRESS_TYPE_HYLINK 15
#define TDI_ADDRESS_TYPE_APPLETALK 16
#define TDI_ADDRESS_TYPE_NETBIOS 17
#define TDI_ADDRESS_TYPE_8022 18
#define TDI_ADDRESS_TYPE_OSI_TSAP 19
#define TDI_ADDRESS_TYPE_NETONE 20
#define TDI_ADDRESS_TYPE_VNS 21
#define TDI_ADDRESS_TYPE_NETBIOS_EX 22
#define TDI_ADDRESS_TYPE_IP6 23
#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24
}
This is just a few copypastes from headers. It seems like ReacOS version
is
just a quick copy of Microsoft TDI.H file, with removed comments, and
reordered definitions of strctures.
--
Volodymyr
NG tips:
http://msmvps.com/blogs/v_scherbina/pages/microsoft-newsgroups-tips.aspx
Well, in the end, they're cloning the NT kernel so I think I'm not
surprise here and there the source and the logic may be very similar
to the original.
.
- Follow-Ups:
- Re: Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: Did you try ReactOS?
- References:
- [OT] Did you try ReactOS?
- From: Kerem Gümrükcü
- Re: [OT] Did you try ReactOS?
- From: Alexander Grigoriev
- Re: [OT] Did you try ReactOS?
- From: Don Burn
- Re: [OT] Did you try ReactOS?
- From: Kerem Gümrükcü
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: [OT] Did you try ReactOS?
- From: Kerem Gümrükcü
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: [OT] Did you try ReactOS?
- From: Don Burn
- Re: [OT] Did you try ReactOS?
- From: Aleksey Bragin
- Re: [OT] Did you try ReactOS?
- From: Don Burn
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: [OT] Did you try ReactOS?
- From: Aleksey Bragin
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- [OT] Did you try ReactOS?
- Prev by Date: Re: [OT] Did you try ReactOS?
- Next by Date: Is possible to disable Update driver menu item in device manager?
- Previous by thread: Re: [OT] Did you try ReactOS?
- Next by thread: Re: Did you try ReactOS?
- Index(es):