80 Irp->IoStatus.Information = 0;
84 return Irp->IoStatus.Status;
108 Irp->IoStatus.Status));
110 Irp->IoStatus.Information));
147 Irp->IoStatus.Information = 0;
246 Irp->IoStatus.Information = 0;
368 while (LastConnection->
Next !=
NULL)
369 LastConnection = LastConnection->
Next;
370 LastConnection->
Next = Connection;
575 if (TranContext ==
NULL)
722 Address->Address[0].Address[0].sin_port = AddrFile->
Port;
725 &
Address->Address[0].Address[0].sin_zero,
726 sizeof(
Address->Address[0].Address[0].sin_zero));
745 &
Address->Address[0].Address[0].sin_zero,
746 sizeof(
Address->Address[0].Address[0].sin_zero));
816 ULONG BytesReceived = 0;
826 if (TranContext ==
NULL)
885 ULONG BytesReceived = 0;
895 if (TranContext ==
NULL)
969 if (TranContext ==
NULL)
1042 if (TranContext ==
NULL)
1072 (
"About to call send routine %x\n",
1080 DgramInfo->SendDatagramInformation,
1084 Irp->IoStatus.Information = DataUsed;
1388 if (InputMdl && OutputMdl) {
1393 InputMdlLocked =
TRUE;
1398 OutputMdlLocked =
TRUE;
1416 Request.RequestContext = QueryContext;
1436 if (OutputMdlLocked)
1465 InputMdlLocked =
TRUE;
1486 Request.RequestContext = QueryContext;
1539 Irp->IoStatus.Information = 0;
1543 return Irp->IoStatus.Status;
1573 if( IF->Unicast.Address.IPv4Address == IpAddrChange->
Address ) {
1577 if( IF->Index == IpAddrChange->
NteIndex ) {
1581 IF->Unicast.Address.IPv4Address = IpAddrChange->
Address;
1584 IF->Netmask.Address.IPv4Address = IpAddrChange->
Netmask;
1587 IF->Broadcast.Address.IPv4Address =
1588 IF->Unicast.Address.IPv4Address |
1589 ~IF->Netmask.Address.IPv4Address;
1592 IF->Unicast.Address.IPv4Address));
1594 IF->Netmask.Address.IPv4Address));
1598 IpAddrChange->
Address = IF->Index;
1600 Irp->IoStatus.Information = IF->Index;
1611 PUSHORT NteIndex =
Irp->AssociatedIrp.SystemBuffer;
1615 if( IF->Index == *NteIndex ) {
1618 IF->Unicast.Address.IPv4Address = 0;
1621 IF->Netmask.Address.IPv4Address = 0;
1624 IF->Broadcast.Address.IPv4Address = 0;
1648 while (
Now.QuadPart -
WorkItem->StartTime.QuadPart < 10000 * 1000 && !
Irp->Cancel) {
1655 Wait.QuadPart = -10000;
1689 Irp->IoStatus.Information = 0;
1697 IPs = (
PULONG)
Irp->AssociatedIrp.SystemBuffer;
1772 if (LinkAddress ==
NULL) {
#define KeQuerySystemTime(t)
NTSTATUS TCPConnect(PCONNECTION_ENDPOINT Connection, PTDI_CONNECTION_INFORMATION ConnInfo, PTDI_CONNECTION_INFORMATION ReturnInfo, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
UINT CopyBufferToBufferChain(PNDIS_BUFFER DstBuffer, UINT DstOffset, PUCHAR SrcData, UINT Length)
BOOLEAN AddrIsUnspecified(PIP_ADDRESS Address)
NTSTATUS DispTdiAccept(PIRP Irp)
VOID NTAPI WaitForHwAddress(PDEVICE_OBJECT DeviceObject, PVOID Context)
#define TI_DbgPrint(_t_, _x_)
VOID NTAPI DispCancelListenRequest(PDEVICE_OBJECT Device, PIRP Irp)
#define STATUS_DEVICE_DOES_NOT_EXIST
PTDI_IND_DISCONNECT DisconnectHandler
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation
PVOID ChainedReceiveExpeditedHandlerContext
VOID DispDataRequestComplete(PVOID Context, NTSTATUS Status, ULONG Count)
IPv4_RAW_ADDRESS IPv4Address
DRIVER_CANCEL * PDRIVER_CANCEL
struct _TDI_REQUEST_KERNEL_RECEIVEDG * PTDI_REQUEST_KERNEL_RECEIVEDG
#define TDI_QUERY_CONNECTION_INFO
BOOLEAN RegisteredReceiveDatagramHandler
struct _TDI_REQUEST_KERNEL_ASSOCIATE * PTDI_REQUEST_KERNEL_ASSOCIATE
#define STATUS_INSUFFICIENT_RESOURCES
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
NTSTATUS(NTAPI * PTDI_IND_CHAINED_RECEIVE_EXPEDITED)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG ReceiveLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
PVOID ChainedReceiveDatagramHandlerContext
NTSTATUS(NTAPI * PTDI_IND_DISCONNECT)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ LONG DisconnectDataLength, _In_reads_bytes_opt_(DisconnectDataLength) PVOID DisconnectData, _In_ LONG DisconnectInformationLength, _In_reads_bytes_opt_(DisconnectInformationLength) PVOID DisconnectInformation, _In_ ULONG DisconnectFlags)
TDI_STATUS InfoTdiQueryInformationEx(PTDI_REQUEST Request, TDIObjectID *ID, PNDIS_BUFFER Buffer, PUINT BufferSize, PVOID Context)
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
struct _TDI_REQUEST_KERNEL_SET_EVENT * PTDI_REQUEST_KERNEL_SET_EVENT
NTSTATUS TCPListen(PCONNECTION_ENDPOINT Connection, UINT Backlog)
#define STATUS_INVALID_PARAMETER
NTSTATUS TCPReceiveData(PCONNECTION_ENDPOINT Connection, PNDIS_BUFFER Buffer, ULONG ReceiveLength, PULONG BytesReceived, ULONG ReceiveFlags, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
_In_ WDFDPC _In_ BOOLEAN Wait
struct _TDI_REQUEST_KERNEL_QUERY_INFO * PTDI_REQUEST_KERNEL_QUERY_INFORMATION
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
struct _IP_SET_ADDRESS * PIP_SET_ADDRESS
struct _TA_ADDRESS_IP * PTA_IP_ADDRESS
BOOLEAN RegisteredExpeditedReceiveHandler
#define TDI_EVENT_RECEIVE_EXPEDITED
NTSTATUS TCPSendData(PCONNECTION_ENDPOINT Connection, PCHAR Buffer, ULONG DataSize, PULONG DataUsed, ULONG Flags, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
struct _CONNECTION_ENDPOINT * PCONNECTION_ENDPOINT
#define TDI_EVENT_DISCONNECT
BOOLEAN TCPAbortListenForSocket(PCONNECTION_ENDPOINT Listener, PCONNECTION_ENDPOINT Connection)
VOID NTAPI IoAcquireCancelSpinLock(OUT PKIRQL Irql)
PVOID ReceiveHandlerContext
PTDI_IND_RECEIVE ReceiveHandler
#define TDI_CONNECTION_FILE
union IP_ADDRESS::@984 Address
NTSTATUS DispTdiReceive(PIRP Irp)
IN PVOID IN PVOID IN USHORT IN USHORT Size
NTSTATUS TCPSocket(PCONNECTION_ENDPOINT Connection, UINT Family, UINT Type, UINT Proto)
VOID NTAPI MmUnlockPages(IN PMDL Mdl)
PNEIGHBOR_CACHE_ENTRY RouteGetRouteToDestination(PIP_ADDRESS Destination)
PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor(PIP_ADDRESS Address, PIP_INTERFACE Interface)
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
NTSTATUS(NTAPI * PTDI_IND_CHAINED_RECEIVE_DATAGRAM)(_In_opt_ PVOID TdiEventContext, _In_ LONG SourceAddressLength, _In_reads_bytes_(SourceAddressLength) PVOID SourceAddress, _In_ LONG OptionsLength, _In_reads_bytes_opt_(OptionsLength) PVOID Options, _In_ ULONG ReceiveDatagramFlags, _In_ ULONG ReceiveDatagramLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
IoSetCancelRoutine(Irp, CancelRoutine)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
NTSTATUS DispTdiQueryIpHwAddress(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define DereferenceObject(Object)
#define STATUS_BUFFER_TOO_SMALL
NTSTATUS(NTAPI * PTDI_IND_ERROR)(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status)
struct _CONNECTION_ENDPOINT * Next
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
#define TDI_QUERY_ADDRESS_INFO
_In_ WDFREQUEST _In_ size_t OutputBufferLength
PADDRESS_FILE AddressFile
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
BOOLEAN RegisteredErrorHandler
#define TDI_EVENT_RECEIVE
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS DispTdiSetInformation(PIRP Irp)
NTSTATUS DispTdiSetIPAddress(PIRP Irp, PIO_STACK_LOCATION IrpSp)
BOOLEAN RegisteredChainedReceiveDatagramHandler
struct _TDI_REQUEST_KERNEL_SEND * PTDI_REQUEST_KERNEL_SEND
NTSTATUS TCPAccept(PTDI_REQUEST Request, PCONNECTION_ENDPOINT Listener, PCONNECTION_ENDPOINT Connection, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
BOOLEAN ARPTransmit(PIP_ADDRESS Address, PVOID LinkAddress, PIP_INTERFACE Interface)
_In_ UCHAR _In_ UCHAR MinorFunction
NTSTATUS DispTdiDisconnect(PIRP Irp)
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL_DISCONNECT
struct _ADDRESS_FILE * PADDRESS_FILE
_In_opt_ PDRIVER_CANCEL CancelRoutine
struct _QUERY_HW_WORK_ITEM * PQUERY_HW_WORK_ITEM
DATAGRAM_COMPLETION_ROUTINE PDATAGRAM_COMPLETION_ROUTINE
#define ForEachInterface(n)
#define IoCompleteRequest
#define TDI_RECEIVE_DATAGRAM
#define TDI_EVENT_CHAINED_RECEIVE
NTSTATUS DispTdiReceiveDatagram(PIRP Irp)
PTDI_IND_RECEIVE_DATAGRAM ReceiveDatagramHandler
BOOLEAN RegisteredChainedReceiveHandler
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
BOOLEAN RegisteredConnectHandler
#define IO_NETWORK_INCREMENT
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
PVOID ReceiveDatagramHandlerContext
struct _TDI_CONNECTION_INFO * PTDI_CONNECTION_INFO
#define STATUS_INVALID_BUFFER_SIZE
NTSTATUS DispPrepareIrpForCancel(PTRANSPORT_CONTEXT Context, PIRP Irp, PDRIVER_CANCEL CancelRoutine)
VOID NBUpdateNeighbor(PNEIGHBOR_CACHE_ENTRY NCE, PVOID LinkAddress, UCHAR State)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
BOOLEAN NTAPI KeCancelTimer(IN OUT PKTIMER Timer)
NTSTATUS DGReceiveDatagram(PADDRESS_FILE AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR Buffer, ULONG ReceiveLength, ULONG ReceiveFlags, PTDI_CONNECTION_INFORMATION ReturnInfo, PULONG BytesReceived, PDATAGRAM_COMPLETION_ROUTINE Complete, PVOID Context, PIRP Irp)
struct _QUERY_HW_WORK_ITEM QUERY_HW_WORK_ITEM
#define NT_SUCCESS(StatCode)
#define EXCEPTION_EXECUTE_HANDLER
#define AddrInitIPv4(IPAddress, RawAddress)
#define TDI_EVENT_CONNECT
#define ObDereferenceObject
PTDI_IND_ERROR ErrorHandler
BOOLEAN RegisteredChainedReceiveExpeditedHandler
struct _TCP_REQUEST_QUERY_INFORMATION_EX * PTCP_REQUEST_QUERY_INFORMATION_EX
VOID NTAPI IoFreeMdl(PMDL Mdl)
NTSTATUS(NTAPI * PTDI_IND_CHAINED_RECEIVE)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG ReceiveLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
VOID IPAddInterfaceRoute(PIP_INTERFACE IF)
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS(NTAPI * PTDI_IND_RECEIVE_DATAGRAM)(_In_opt_ PVOID TdiEventContext, _In_ LONG SourceAddressLength, _In_reads_bytes_(SourceAddressLength) PVOID SourceAddress, _In_ LONG OptionsLength, _In_reads_bytes_opt_(OptionsLength) PVOID Options, _In_ ULONG ReceiveDatagramFlags, _In_ ULONG BytesIndicated, _In_ ULONG BytesAvailable, _Out_ ULONG *BytesTaken, _In_ PVOID Tsdu, _Out_opt_ PIRP *IoRequestPacket)
NTSTATUS(NTAPI * PTDI_IND_CONNECT)(_In_opt_ PVOID TdiEventContext, _In_ LONG RemoteAddressLength, _In_reads_bytes_(RemoteAddressLength) PVOID RemoteAddress, _In_ LONG UserDataLength, _In_reads_bytes_opt_(UserDataLength) PVOID UserData, _In_ LONG OptionsLength, _In_reads_bytes_opt_(OptionsLength) PVOID Options, _Out_ CONNECTION_CONTEXT *ConnectionContext, _Out_ PIRP *AcceptIrp)
PTDI_IND_CHAINED_RECEIVE_DATAGRAM ChainedReceiveDatagramHandler
NTSTATUS DispTdiSend(PIRP Irp)
union _TRANSPORT_CONTEXT::@1002 Handle
TRANSPORT_ADDRESS Address
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
PTDI_IND_CHAINED_RECEIVE_EXPEDITED ChainedReceiveExpeditedHandler
NTSTATUS DispTdiAssociateAddress(PIRP Irp)
NTSTATUS DispTdiQueryInformationEx(PIRP Irp, PIO_STACK_LOCATION IrpSp)
TCP_REQUEST_QUERY_INFORMATION_EX QueryInfo
#define TDI_TRANSPORT_ADDRESS_FILE
#define TDI_ADDRESS_TYPE_IP
NTSTATUS DispTdiDeleteIPAddress(PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS DispTdiSetEventHandler(PIRP Irp)
#define ReferenceObject(Object)
NTSTATUS DispTdiSetInformationEx(PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define TDI_EVENT_RECEIVE_DATAGRAM
struct _CONNECTION_ENDPOINT * Listener
struct _TDI_REQUEST_KERNEL_SENDDG * PTDI_REQUEST_KERNEL_SENDDG
_Must_inspect_result_ _In_ WDFDEVICE Device
POBJECT_TYPE IoFileObjectType
PVOID ExpeditedReceiveHandlerContext
#define TDI_EVENT_CHAINED_RECEIVE_DATAGRAM
struct _TI_QUERY_CONTEXT * PTI_QUERY_CONTEXT
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
PVOID ConnectHandlerContext
PTDI_IND_CHAINED_RECEIVE ChainedReceiveHandler
BOOLEAN RegisteredDisconnectHandler
PMDL NTAPI IoAllocateMdl(IN PVOID VirtualAddress, IN ULONG Length, IN BOOLEAN SecondaryBuffer, IN BOOLEAN ChargeQuota, IN PIRP Irp)
PTDI_IND_CONNECT ConnectHandler
PVOID ErrorHandlerContext
VOID NTAPI IoQueueWorkItem(IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context)
PTDI_CONNECTION_INFORMATION RequestConnectionInformation
PVOID ChainedReceiveHandlerContext
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI DispCancelRequest(PDEVICE_OBJECT Device, PIRP Irp)
PIP_INTERFACE AddrLocateInterface(PIP_ADDRESS MatchAddress)
#define UnlockObject(Object)
BOOLEAN DGRemoveIRP(PADDRESS_FILE AddrFile, PIRP Irp)
NTSTATUS(NTAPI * PTDI_IND_RECEIVE_EXPEDITED)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG BytesIndicated, _In_ ULONG BytesAvailable, _Out_ ULONG *BytesTaken, _In_ PVOID Tsdu, _Out_opt_ PIRP *IoRequestPacket)
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
NTSTATUS TCPDisconnect(PCONNECTION_ENDPOINT Connection, UINT Flags, PLARGE_INTEGER Timeout, PTDI_CONNECTION_INFORMATION ConnInfo, PTDI_CONNECTION_INFORMATION ReturnInfo, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation
CONNECTION_CONTEXT ConnectionContext
_In_ PIO_STACK_LOCATION IrpSp
VOID IPRemoveInterfaceRoute(PIP_INTERFACE IF)
#define FIELD_OFFSET(t, f)
#define MmGetMdlByteCount(_Mdl)
#define TDI_EVENT_CHAINED_RECEIVE_EXPEDITED
struct _TDI_REQUEST_KERNEL_RECEIVE * PTDI_REQUEST_KERNEL_RECEIVE
struct _TDI_ADDRESS_INFO * PTDI_ADDRESS_INFO
PVOID DisconnectHandlerContext
BOOLEAN TCPRemoveIRP(PCONNECTION_ENDPOINT Connection, PIRP Irp)
NTSTATUS DispTdiListen(PIRP Irp)
VOID EXPORT NdisQueryBuffer(IN PNDIS_BUFFER Buffer, OUT PVOID *VirtualAddress OPTIONAL, OUT PUINT Length)
#define TDI_SEND_DATAGRAM
PIP_INTERFACE GetDefaultInterface(VOID)
struct tagContext Context
struct _TRANSPORT_CONTEXT * PTRANSPORT_CONTEXT
#define MmGetSystemAddressForMdl(Mdl)
#define RtlZeroMemory(Destination, Length)
#define IRP_SYNCHRONOUS_API
#define RtlCopyMemory(Destination, Source, Length)
struct _CONNECTION_ENDPOINT * Connection
PTDI_CONNECTION_INFORMATION ReturnDatagramInformation
struct _TDI_MAX_DATAGRAM_INFO * PTDI_MAX_DATAGRAM_INFO
TDI_STATUS InfoTdiSetInformationEx(PTDI_REQUEST Request, TDIObjectID *ID, PVOID Buffer, UINT BufferSize)
NTSTATUS DispTdiConnect(PIRP Irp)
#define _SEH2_EXCEPT(...)
NTSTATUS DispTdiSendDatagram(PIRP Irp)
#define _SEH2_GetExceptionCode()
#define TDI_ADDRESS_LENGTH_IP
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
PTDI_IND_RECEIVE_EXPEDITED ExpeditedReceiveHandler
BOOLEAN RegisteredReceiveHandler
NTSTATUS(NTAPI * PTDI_IND_RECEIVE)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG BytesIndicated, _In_ ULONG BytesAvailable, _Out_ ULONG *BytesTaken, _In_ PVOID Tsdu, _Out_opt_ PIRP *IoRequestPacket)
#define STATUS_NETWORK_UNREACHABLE
#define ExFreePoolWithTag(_P, _T)
struct _TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL
VOID DispTdiQueryInformationExComplete(PVOID Context, ULONG Status, UINT ByteCount)
PCONNECTION_ENDPOINT TCPAllocateConnectionEndpoint(PVOID ClientContext)
NTSTATUS DispTdiQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define TDI_QUERY_MAX_DATAGRAM_INFO
#define STATUS_DUPLICATE_OBJECTID
NTSTATUS IRPFinish(PIRP Irp, NTSTATUS Status)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
NTSTATUS DispTdiDisassociateAddress(PIRP Irp)
#define TDI_CONTROL_CHANNEL_FILE
#define LockObject(Object)