47 DPRINT(
"Irp->UserEvent = %p\n",
Irp->UserEvent);
53 DPRINT(
"Waiting on transport.\n");
131 DPRINT(
"ObReferenceObjectByHandle() failed with status (0x%X).\n",
Status);
137 DPRINT(
"ZwCreateFile() failed with status (0x%X)\n",
Status);
205 PUINT MaxDatagramLength)
236 DPRINT(
"Failed to lock pages\n");
251 *MaxDatagramLength =
Buffer->MaxDatagramSize;
331 if (!ConnectionObject) {
332 DPRINT(
"Bad connection object.\n");
338 DPRINT(
"Bad device object.\n");
358 ConnectionReturnInfo);
381 DPRINT(
"Called. AddressHandle (%p) ConnectionObject (%p)\n", AddressHandle, ConnectionObject);
383 if (!ConnectionObject) {
384 DPRINT(
"Bad connection object.\n");
390 DPRINT(
"Bad device object.\n");
429 DPRINT(
"Called. ConnectionObject (%p)\n", ConnectionObject);
431 if (!ConnectionObject) {
432 DPRINT(
"Bad connection object.\n");
438 DPRINT(
"Bad device object.\n");
482 if (!ConnectionObject) {
483 DPRINT(
"Bad connection object.\n");
489 DPRINT(
"Bad device object.\n");
507 *RequestConnectionInfo,
508 *ReturnConnectionInfo);
536 if (!AcceptConnectionObject) {
537 DPRINT(
"Bad connection object.\n");
543 DPRINT(
"Bad device object.\n");
549 AcceptConnectionObject,
557 AcceptConnectionObject,
560 RequestConnectionInfo,
561 ReturnConnectionInfo);
595 DPRINT(
"Bad file object.\n");
601 DPRINT(
"Bad device object.\n");
658 DPRINT(
"Bad file object.\n");
664 DPRINT(
"Bad device object.\n");
685 *Return =
Iosb.Information;
711 DPRINT(
"Bad file object.\n");
717 DPRINT(
"Bad device object.\n");
813 DPRINT(
"Insufficient resources.\n");
828 DPRINT(
"Unable to get list of supported entities (Status = 0x%X).\n",
Status);
845 Entities[
i].tei_instance,
852 DPRINT(
"Unable to get entity of type IP (Status = 0x%X).\n",
Status);
861 Entities[
i].tei_instance,
868 DPRINT(
"Unable to get SNMP information or no IP addresses available (Status = 0x%X).\n",
Status);
880 DPRINT(
"Insufficient resources.\n");
886 Entities[
i].tei_instance,
893 DPRINT(
"Unable to get IP address (Status = 0x%X).\n",
Status);
933 if (!TransportObject) {
934 DPRINT(
"Bad transport object.\n");
940 DPRINT(
"Bad device object.\n");
951 DPRINT(
"Insufficient resources.\n");
963 DPRINT(
"Insufficient resources.\n");
972 DPRINT(
"MmProbeAndLockPages() failed.\n");
1007 if (!TransportObject) {
1008 DPRINT(
"Bad transport object.\n");
1014 DPRINT(
"Bad device object.\n");
1025 DPRINT(
"Insufficient resources.\n");
1037 DPRINT(
"Insufficient resources.\n");
1044 DPRINT(
"probe and lock\n");
1046 DPRINT(
"probe and lock done\n");
1048 DPRINT(
"MmProbeAndLockPages() failed.\n");
1099 if (!TransportObject) {
1100 DPRINT(
"Bad tranport object.\n");
1106 DPRINT(
"Bad device object.\n");
1117 DPRINT(
"Insufficient resources.\n");
1129 DPRINT(
"Insufficient resources.\n");
1138 DPRINT(
"MmProbeAndLockPages() failed.\n");
1189 if (!TransportObject) {
1190 DPRINT(
"Bad transport object.\n");
1194 DPRINT(
"Called(TransportObject %p)\n", TransportObject);
1198 DPRINT(
"Bad device object.\n");
1204 DPRINT(
"Succeeding send with length 0.\n");
1215 DPRINT(
"Insufficient resources.\n");
1228 DPRINT(
"Insufficient resources.\n");
1237 DPRINT(
"MmProbeAndLockPages() failed.\n");
1271 if (!TransportObject) {
1272 DPRINT(
"Bad transport object.\n");
1276 DPRINT(
"Called(TransportObject %p)\n", TransportObject);
1280 DPRINT(
"Bad device object.\n");
1291 DPRINT(
"Insufficient resources.\n");
1302 RequestConnectionInfo,
1303 ReturnConnectionInfo);
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
struct IPADDR_ENTRY * PIPADDR_ENTRY
#define IP_MIB_ADDRTABLE_ENTRY_ID
#define TAG_AFD_SNMP_ADDRESS_INFO
#define TAG_AFD_DATA_BUFFER
#define TAG_AFD_TRANSPORT_ADDRESS
#define NT_SUCCESS(StatCode)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT ShareAccess
NTSTATUS TdiQueryInformationEx(PFILE_OBJECT FileObject, ULONG Entity, ULONG Instance, ULONG Class, ULONG Type, ULONG Id, PVOID OutputBuffer, PULONG OutputLength)
Extended query for information.
NTSTATUS TdiListen(PIRP *Irp, PFILE_OBJECT ConnectionObject, PTDI_CONNECTION_INFORMATION *RequestConnectionInfo, PTDI_CONNECTION_INFORMATION *ReturnConnectionInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Listen on a connection endpoint for a connection request from a remote peer.
NTSTATUS TdiAssociateAddressFile(HANDLE AddressHandle, PFILE_OBJECT ConnectionObject)
Associates a connection endpoint to an address file object.
NTSTATUS TdiSendDatagram(PIRP *Irp, PFILE_OBJECT TransportObject, PCHAR Buffer, UINT BufferLength, PTDI_CONNECTION_INFORMATION Addr, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Sends a datagram.
NTSTATUS TdiOpenConnectionEndpointFile(PUNICODE_STRING DeviceName, PHANDLE ConnectionHandle, PFILE_OBJECT *ConnectionObject)
Opens a connection endpoint file object.
NTSTATUS TdiQueryMaxDatagramLength(PFILE_OBJECT FileObject, PUINT MaxDatagramLength)
NTSTATUS TdiDisassociateAddressFile(PFILE_OBJECT ConnectionObject)
Disassociates a connection endpoint from an address file object.
NTSTATUS TdiSend(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
NTSTATUS TdiQueryInformation(PFILE_OBJECT FileObject, LONG QueryType, PMDL MdlBuffer)
Query for information.
static NTSTATUS TdiCall(PIRP Irp, PDEVICE_OBJECT DeviceObject, PKEVENT Event, PIO_STATUS_BLOCK Iosb)
Calls a transport driver device.
NTSTATUS TdiAccept(PIRP *Irp, PFILE_OBJECT AcceptConnectionObject, PTDI_CONNECTION_INFORMATION RequestConnectionInfo, PTDI_CONNECTION_INFORMATION ReturnConnectionInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Listen on a connection endpoint for a connection request from a remote peer.
NTSTATUS TdiSetEventHandler(PFILE_OBJECT FileObject, LONG EventType, PVOID Handler, PVOID Context)
Sets or resets an event handler.
NTSTATUS TdiQueryDeviceControl(PFILE_OBJECT FileObject, ULONG IoControlCode, PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, ULONG OutputBufferLength, PULONG Return)
Queries a device for information.
static NTSTATUS TdiOpenDevice(PUNICODE_STRING DeviceName, ULONG EaLength, PFILE_FULL_EA_INFORMATION EaInfo, ULONG ShareType, PHANDLE Handle, PFILE_OBJECT *Object)
Opens a device.
NTSTATUS TdiReceiveDatagram(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PTDI_CONNECTION_INFORMATION Addr, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Receives a datagram.
NTSTATUS TdiConnect(PIRP *Irp, PFILE_OBJECT ConnectionObject, PTDI_CONNECTION_INFORMATION ConnectionCallInfo, PTDI_CONNECTION_INFORMATION ConnectionReturnInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Connect a connection endpoint to a remote peer.
NTSTATUS TdiDisconnect(PIRP *Irp, PFILE_OBJECT TransportObject, PLARGE_INTEGER Time, USHORT Flags, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext, PTDI_CONNECTION_INFORMATION RequestConnectionInfo, PTDI_CONNECTION_INFORMATION ReturnConnectionInfo)
NTSTATUS TdiReceive(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
NTSTATUS TdiOpenAddressFile(PUNICODE_STRING DeviceName, PTRANSPORT_ADDRESS Name, ULONG ShareType, PHANDLE AddressHandle, PFILE_OBJECT *AddressObject)
Opens an IPv4 address file object.
NTSTATUS TdiQueryAddress(PFILE_OBJECT FileObject, PULONG Address)
Queries for a local IP address.
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
IN PVCB IN PDIRENT OUT PULONG EaLength
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
struct _FILE_FULL_EA_INFORMATION FILE_FULL_EA_INFORMATION
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
#define EXCEPTION_EXECUTE_HANDLER
POBJECT_TYPE IoFileObjectType
_In_ PKSPIN_CONNECT _In_ ACCESS_MASK _Out_ PHANDLE ConnectionHandle
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
#define ExFreePoolWithTag(_P, _T)
#define InitializeObjectAttributes(p, n, a, r, s)
static PLARGE_INTEGER Time
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE EventType
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(IN PFILE_OBJECT FileObject)
#define IoCompleteRequest
PIRP NTAPI IoBuildDeviceIoControlRequest(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
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)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
#define TDI_QUERY_MAX_DATAGRAM_INFO
struct _TA_ADDRESS_IP TA_IP_ADDRESS
struct _TRANSPORT_ADDRESS * PTRANSPORT_ADDRESS
#define TDI_CONNECTION_CONTEXT_LENGTH
#define TDI_TRANSPORT_ADDRESS_LENGTH
#define TdiConnectionContext
#define TdiTransportAddress
UINT TaLengthOfTransportAddress(PTRANSPORT_ADDRESS Addr)
VOID TaCopyTransportAddressInPlace(PTRANSPORT_ADDRESS Target, PTRANSPORT_ADDRESS Source)
struct _TDIEntityID TDIEntityID
#define INFO_CLASS_PROTOCOL
#define INFO_CLASS_GENERIC
#define INFO_TYPE_PROVIDER
#define TdiBuildReceive( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, InFlags, ReceiveLen)
#define TDI_SEND_DATAGRAM
#define TdiBuildAssociateAddress( Irp, DevObj, FileObj, CompRoutine, Contxt, AddrHandle)
#define TDI_RECEIVE_DATAGRAM
#define TdiBuildListen( Irp, DevObj, FileObj, CompRoutine, Contxt, Flags, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildDisconnect( Irp, DevObj, FileObj, CompRoutine, Contxt, Time, Flags, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildSend( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, InFlags, SendLen)
#define TdiBuildInternalDeviceControlIrp(IrpSubFunction, DeviceObject, FileObject, Event, IoStatusBlock)
#define TDI_QUERY_INFORMATION
#define TdiBuildReceiveDatagram( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags)
#define TdiBuildDisassociateAddress( Irp, DevObj, FileObj, CompRoutine, Contxt)
#define TdiBuildSendDatagram( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, SendLen, SendDatagramInfo)
#define TdiBuildQueryInformation( Irp, DevObj, FileObj, CompRoutine, Contxt, QType, MdlAddr)
#define TdiBuildAccept( Irp, DevObj, FileObj, CompRoutine, Contxt, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildConnect( Irp, DevObj, FileObj, CompRoutine, Contxt, Time, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildSetEventHandler( Irp, DevObj, FileObj, CompRoutine, Contxt, InEventType, InEventHandler, InEventContext)
#define TDI_DISASSOCIATE_ADDRESS
#define TDI_SET_EVENT_HANDLER
#define TDI_ASSOCIATE_ADDRESS
#define IOCTL_TCP_QUERY_INFORMATION_EX
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
_Must_inspect_result_ _In_ ULONG Flags
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE