230 DWORD outIDCount, i1, iAddr;
231 DWORD bCastAddr, outNumberOfBytes;
239 IntfIDList =
HeapAlloc(hHeap, 0,
sizeof(*IntfIDList));
250 DPRINT(
"TcpFile %p\n", TcpFile);
254 DPRINT(
"ERROR in AllocAndGetEntityArray: out of memory!\n");
260 pIFEntry =
HeapAlloc(hHeap, 0, IFEntryLen);
269 pEntityID = outEntityID;
270 for (i1 = 0; i1 < outIDCount; i1++)
287 pIntfIDItem->
id = *pEntityID;
296 outNumberOfBytes = 0;
301 DPRINT(
"Buffer size needed: %lu\n", outNumberOfBytes);
305 if (NumberOfBytesReturned)
306 *NumberOfBytesReturned = 0;
334 DPRINT(
"DeviceIoControl failed, Status %li!\n", LastErr);
347 for (iAddr = 0; iAddr < pIntfIDItem->
numaddr; iAddr++)
349 DPRINT(
"BufLen %lu\n",BufLenNeeded);
361 bCastAddr = (pIPAddrEntry->
iae_bcastaddr == 0) ? 0 : 0xffffffff;
379 pEntityID = outEntityID;
380 for (i1 = 0; i1 < outIDCount; i1++)
408 for (iAddr = 0; iAddr < pIntfIDItem->
numaddr; iAddr++)
421 if (NumberOfBytesReturned)
422 *NumberOfBytesReturned = outNumberOfBytes;
423 if (NeedsCompletion !=
NULL)
424 *NeedsCompletion =
FALSE;
428 DPRINT(
"WSHIoctl_GetInterfaceList - CLEANUP\n");
431 if (pIFEntry !=
NULL)
BOOL AllocAndGetEntityArray(IN HANDLE TcpFile, IN HANDLE hHeap, OUT TDIEntityID **ppEntities, OUT PDWORD idCount)
struct _INTERFACE_INFO INTERFACE_INFO
IPAddrEntry * pIPAddrEntry0
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
DWORD WINAPI GetLastError(VOID)
struct _INTERFACE_INFO * LPINTERFACE_INFO
_In_ WDFREQUEST _In_ size_t OutputBufferLength
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
INT GetTdiEntityType(IN HANDLE TcpFile, IN TDIEntityID *pEntityID, OUT PULONG pType)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
sockaddr_gen iiBroadcastAddress
#define IOCTL_TCP_QUERY_INFORMATION_EX
INT GetIPSNMPInfo(IN HANDLE TcpFile, IN TDIEntityID *pEntityID, OUT IPSNMPInfo *outIPSNMPInfo)
#define LIST_FOR_EACH_ENTRY_SAFE_REV(cursor, cursor2, list, type, field)
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
#define INFO_TYPE_PROVIDER
NTSTATUS openTcpFile(PHANDLE tcpFile, ACCESS_MASK DesiredAccess)
#define MAX_ADAPTER_DESCRIPTION_LENGTH
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
#define RtlZeroMemory(Destination, Length)
INT GetIFEntry(IN HANDLE TcpFile, IN TDIEntityID *pEntityID, OUT IFEntry *pIFEntry, IN ULONG IFEntryLen)
char * cleanup(char *str)
#define IP_MIB_ADDRTABLE_ENTRY_ID
struct sockaddr_in AddressIn
#define HeapFree(x, y, z)
struct IPAddrEntry IPAddrEntry
#define INFO_CLASS_PROTOCOL