https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1e28d4d92bfa1e69b4db6e...
commit 1e28d4d92bfa1e69b4db6eefae9e8cbff498c846 Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Sun Dec 9 20:52:54 2018 +0100 Commit: Pierre Schweitzer pierre@reactos.org CommitDate: Sun Dec 9 20:54:41 2018 +0100
[TCPIP] Implement InfoTdiQueryGetATInfo
This implements a case for InfoTdiQueryInformationEx. It's based on wild guesses, but it helps to make Windows 2003 lsass not fail. --- drivers/network/tcpip/tcpip/info.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)
diff --git a/drivers/network/tcpip/tcpip/info.c b/drivers/network/tcpip/tcpip/info.c index 6cc44d5985..b1f1c4d422 100644 --- a/drivers/network/tcpip/tcpip/info.c +++ b/drivers/network/tcpip/tcpip/info.c @@ -180,6 +180,38 @@ TDI_STATUS InfoTdiQueryListEntities(PNDIS_BUFFER Buffer, return TDI_SUCCESS; }
+TDI_STATUS +InfoTdiQueryGetATInfo( + TDIEntityID ID, + PIP_INTERFACE Interface, + PNDIS_BUFFER Buffer, + PUINT BufferSize) +{ + ULONG ATInfo[2]; + TDI_STATUS Status; + + TI_DbgPrint(DEBUG_INFO, ("Called.\n")); + + if (!Interface) + return TDI_INVALID_PARAMETER; + + if (*BufferSize < sizeof(ATInfo)) + return STATUS_BUFFER_TOO_SMALL; + + /* FIXME: I have no idea what the first field should contain... */ + ATInfo[0] = 0; + ATInfo[1] = Interface->Index; + + Status = InfoCopyOut((PCHAR)ATInfo, + sizeof(ATInfo), + Buffer, + BufferSize); + + TI_DbgPrint(DEBUG_INFO, ("Returning %08x\n", Status)); + + return Status; +} + TDI_STATUS InfoTdiQueryInformationEx( PTDI_REQUEST Request, TDIObjectID *ID, @@ -256,6 +288,11 @@ TDI_STATUS InfoTdiQueryInformationEx( return InfoTdiQueryGetIPSnmpInfo(ID->toi_entity, EntityListContext, Buffer, BufferSize); else return TDI_INVALID_PARAMETER; + else if (ID->toi_entity.tei_entity == AT_ENTITY) + if ((EntityListContext = GetContext(ID->toi_entity))) + return InfoTdiQueryGetATInfo(ID->toi_entity, EntityListContext, Buffer, BufferSize); + else + return TDI_INVALID_PARAMETER; else return TDI_INVALID_PARAMETER;