35 #define TDIKRNLAPI DECLSPEC_IMPORT 47 #define TDI_ASSOCIATE_ADDRESS 0x01 48 #define TDI_DISASSOCIATE_ADDRESS 0x02 49 #define TDI_CONNECT 0x03 50 #define TDI_LISTEN 0x04 51 #define TDI_ACCEPT 0x05 52 #define TDI_DISCONNECT 0x06 54 #define TDI_RECEIVE 0x08 55 #define TDI_SEND_DATAGRAM 0x09 56 #define TDI_RECEIVE_DATAGRAM 0x0A 57 #define TDI_SET_EVENT_HANDLER 0x0B 58 #define TDI_QUERY_INFORMATION 0x0C 59 #define TDI_SET_INFORMATION 0x0D 60 #define TDI_ACTION 0x0E 62 #define TDI_DIRECT_SEND 0x27 63 #define TDI_DIRECT_SEND_DATAGRAM 0x29 65 #define TDI_TRANSPORT_ADDRESS_FILE 1 66 #define TDI_CONNECTION_FILE 2 67 #define TDI_CONTROL_CHANNEL_FILE 3 70 #define IOCTL_TDI_QUERY_DIRECT_SEND_HANDLER _TDI_CONTROL_CODE(0x80, METHOD_NEITHER) 71 #define IOCTL_TDI_QUERY_DIRECT_SENDDG_HANDLER _TDI_CONTROL_CODE(0x81, METHOD_NEITHER) 146 #define TDI_EVENT_CONNECT 0 147 #define TDI_EVENT_DISCONNECT 1 148 #define TDI_EVENT_ERROR 2 149 #define TDI_EVENT_RECEIVE 3 150 #define TDI_EVENT_RECEIVE_DATAGRAM 4 151 #define TDI_EVENT_RECEIVE_EXPEDITED 5 152 #define TDI_EVENT_SEND_POSSIBLE 6 153 #define TDI_EVENT_CHAINED_RECEIVE 7 154 #define TDI_EVENT_CHAINED_RECEIVE_DATAGRAM 8 155 #define TDI_EVENT_CHAINED_RECEIVE_EXPEDITED 9 156 #define TDI_EVENT_ERROR_EX 10 190 _In_ LONG DisconnectInformationLength,
202 _In_ LONG DisconnectInformationLength,
391 #define TdiBuildBaseIrp( \ 392 bIrp, bDevObj, bFileObj, bCompRoutine, bContxt, bIrpSp, bMinor) \ 394 bIrpSp->MajorFunction = IRP_MJ_INTERNAL_DEVICE_CONTROL; \ 395 bIrpSp->MinorFunction = (bMinor); \ 396 bIrpSp->DeviceObject = (bDevObj); \ 397 bIrpSp->FileObject = (bFileObj); \ 400 IoSetCompletionRoutine(bIrp, bCompRoutine, bContxt, TRUE, TRUE, TRUE);\ 403 IoSetCompletionRoutine(bIrp, NULL, NULL, FALSE, FALSE, FALSE); \ 417 #define TdiBuildAccept( \ 418 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 419 RequestConnectionInfo, ReturnConnectionInfo) \ 421 PTDI_REQUEST_KERNEL_ACCEPT _Request; \ 422 PIO_STACK_LOCATION _IrpSp; \ 424 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 426 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 427 Contxt, _IrpSp, TDI_ACCEPT); \ 429 _Request = (PTDI_REQUEST_KERNEL_ACCEPT)&_IrpSp->Parameters; \ 430 _Request->RequestConnectionInformation = (RequestConnectionInfo); \ 431 _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ 444 #define TdiBuildAction( \ 445 Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr) \ 447 PIO_STACK_LOCATION _IrpSp; \ 449 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 451 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 452 Contxt, _IrpSp, TDI_ACTION); \ 454 (Irp)->MdlAddress = (MdlAddr); \ 467 #define TdiBuildAssociateAddress( \ 468 Irp, DevObj, FileObj, CompRoutine, Contxt, AddrHandle) \ 470 PTDI_REQUEST_KERNEL_ASSOCIATE _Request; \ 471 PIO_STACK_LOCATION _IrpSp; \ 473 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 475 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 476 Contxt, _IrpSp, TDI_ASSOCIATE_ADDRESS); \ 478 _Request = (PTDI_REQUEST_KERNEL_ASSOCIATE)&_IrpSp->Parameters; \ 479 _Request->AddressHandle = (HANDLE)(AddrHandle); \ 494 #define TdiBuildConnect( \ 495 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 496 Time, RequestConnectionInfo, ReturnConnectionInfo) \ 498 PTDI_REQUEST_KERNEL _Request; \ 499 PIO_STACK_LOCATION _IrpSp; \ 501 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 503 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 504 Contxt, _IrpSp, TDI_CONNECT); \ 506 _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters; \ 507 _Request->RequestConnectionInformation = (RequestConnectionInfo); \ 508 _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ 509 _Request->RequestSpecific = (PVOID)(Time); \ 521 #define TdiBuildDisassociateAddress( \ 522 Irp, DevObj, FileObj, CompRoutine, Contxt) \ 524 PIO_STACK_LOCATION _IrpSp; \ 526 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 528 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 529 Contxt, _IrpSp, TDI_DISASSOCIATE_ADDRESS); \ 545 #define TdiBuildDisconnect( \ 546 Irp, DevObj, FileObj, CompRoutine, Contxt, Time, \ 547 Flags, RequestConnectionInfo, ReturnConnectionInfo) \ 549 PTDI_REQUEST_KERNEL _Request; \ 550 PIO_STACK_LOCATION _IrpSp; \ 552 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 554 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 555 Contxt, _IrpSp, TDI_DISCONNECT); \ 557 _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters; \ 558 _Request->RequestConnectionInformation = (RequestConnectionInfo); \ 559 _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ 560 _Request->RequestSpecific = (PVOID)(Time); \ 561 _Request->RequestFlags = (Flags); \ 573 #define TdiBuildInternalDeviceControlIrp( \ 574 IrpSubFunction, DeviceObject, \ 575 FileObject, Event, IoStatusBlock) \ 576 IoBuildDeviceIoControlRequest( \ 577 IrpSubFunction, DeviceObject, \ 579 TRUE, Event, IoStatusBlock) 593 #define TdiBuildListen( \ 594 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 595 Flags, RequestConnectionInfo, ReturnConnectionInfo) \ 597 PTDI_REQUEST_KERNEL _Request; \ 598 PIO_STACK_LOCATION _IrpSp; \ 600 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 602 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 603 Contxt, _IrpSp, TDI_LISTEN); \ 605 _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters; \ 606 _Request->RequestConnectionInformation = (RequestConnectionInfo); \ 607 _Request->ReturnConnectionInformation = (ReturnConnectionInfo); \ 608 _Request->RequestFlags = (Flags); \ 638 #define TdiBuildQueryInformation( \ 639 Irp, DevObj, FileObj, CompRoutine, Contxt, QType, MdlAddr) \ 641 PTDI_REQUEST_KERNEL_QUERY_INFORMATION _Request; \ 642 PIO_STACK_LOCATION _IrpSp; \ 644 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 646 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 647 Contxt, _IrpSp, TDI_QUERY_INFORMATION); \ 649 _Request = (PTDI_REQUEST_KERNEL_QUERY_INFORMATION)&_IrpSp->Parameters; \ 650 _Request->RequestConnectionInformation = NULL; \ 651 _Request->QueryType = (ULONG)(QType); \ 652 (Irp)->MdlAddress = (MdlAddr); \ 667 #define TdiBuildReceive( \ 668 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 669 MdlAddr, InFlags, ReceiveLen) \ 671 PTDI_REQUEST_KERNEL_RECEIVE _Request; \ 672 PIO_STACK_LOCATION _IrpSp; \ 674 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 676 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 677 Contxt, _IrpSp, TDI_RECEIVE); \ 679 _Request = (PTDI_REQUEST_KERNEL_RECEIVE)&_IrpSp->Parameters; \ 680 _Request->ReceiveFlags = (InFlags); \ 681 _Request->ReceiveLength = (ReceiveLen); \ 682 (Irp)->MdlAddress = (MdlAddr); \ 699 #define TdiBuildReceiveDatagram( \ 700 Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, \ 701 ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags) \ 703 PTDI_REQUEST_KERNEL_RECEIVEDG _Request; \ 704 PIO_STACK_LOCATION _IrpSp; \ 706 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 708 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 709 Contxt, _IrpSp, TDI_RECEIVE_DATAGRAM); \ 711 _Request = (PTDI_REQUEST_KERNEL_RECEIVEDG)&_IrpSp->Parameters; \ 712 _Request->ReceiveDatagramInformation = (ReceiveDatagramInfo); \ 713 _Request->ReturnDatagramInformation = (ReturnInfo); \ 714 _Request->ReceiveLength = (ReceiveLen); \ 715 _Request->ReceiveFlags = (InFlags); \ 716 (Irp)->MdlAddress = (MdlAddr); \ 731 #define TdiBuildSend( \ 732 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 733 MdlAddr, InFlags, SendLen) \ 735 PTDI_REQUEST_KERNEL_SEND _Request; \ 736 PIO_STACK_LOCATION _IrpSp; \ 738 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 740 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 741 Contxt, _IrpSp, TDI_SEND); \ 743 _Request = (PTDI_REQUEST_KERNEL_SEND)&_IrpSp->Parameters; \ 744 _Request->SendFlags = (InFlags); \ 745 _Request->SendLength = (SendLen); \ 746 (Irp)->MdlAddress = (MdlAddr); \ 761 #define TdiBuildSendDatagram( \ 762 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 763 MdlAddr, SendLen, SendDatagramInfo) \ 765 PTDI_REQUEST_KERNEL_SENDDG _Request; \ 766 PIO_STACK_LOCATION _IrpSp; \ 768 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 770 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 771 Contxt, _IrpSp, TDI_SEND_DATAGRAM); \ 773 _Request = (PTDI_REQUEST_KERNEL_SENDDG)&_IrpSp->Parameters; \ 774 _Request->SendDatagramInformation = (SendDatagramInfo); \ 775 _Request->SendLength = (SendLen); \ 776 (Irp)->MdlAddress = (MdlAddr); \ 791 #define TdiBuildSetEventHandler( \ 792 Irp, DevObj, FileObj, CompRoutine, Contxt, \ 793 InEventType, InEventHandler, InEventContext) \ 795 PTDI_REQUEST_KERNEL_SET_EVENT _Request; \ 796 PIO_STACK_LOCATION _IrpSp; \ 798 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 800 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 801 Contxt, _IrpSp, TDI_SET_EVENT_HANDLER); \ 803 _Request = (PTDI_REQUEST_KERNEL_SET_EVENT)&_IrpSp->Parameters; \ 804 _Request->EventType = (InEventType); \ 805 _Request->EventHandler = (PVOID)(InEventHandler); \ 806 _Request->EventContext = (PVOID)(InEventContext); \ 820 #define TdiBuildSetInformation( \ 821 Irp, DevObj, FileObj, CompRoutine, Contxt, SType, MdlAddr) \ 823 PTDI_REQUEST_KERNEL_SET_INFORMATION _Request; \ 824 PIO_STACK_LOCATION _IrpSp; \ 826 _IrpSp = IoGetNextIrpStackLocation(Irp); \ 828 TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine, \ 829 Contxt, _IrpSp, TDI_SET_INFORMATION); \ 831 _Request = (PTDI_REQUEST_KERNEL_SET_INFORMATION)&_IrpSp->Parameters; \ 832 _Request->RequestConnectionInformation = NULL; \ 833 _Request->SetType = (ULONG)(SType); \ 834 (Irp)->MdlAddress = (MdlAddr); \ 838 #define TDI_CURRENT_MAJOR_VERSION 2 839 #define TDI_CURRENT_MINOR_VERSION 0 841 #define TDI_CURRENT_VERSION ((TDI_CURRENT_MINOR_VERSION) << 8 \ 842 | (TDI_CURRENT_MAJOR_VERSION)) 844 #define TDI_VERSION_ONE 0x0001 859 #define TDI_PNP_CONTEXT_TYPE_IF_NAME 0x1 860 #define TDI_PNP_CONTEXT_TYPE_IF_ADDR 0x2 861 #define TDI_PNP_CONTEXT_TYPE_PDO 0x3 862 #define TDI_PNP_CONTEXT_TYPE_FIRST_OR_LAST_IF 0x4 958 #define TdiCompleteRequest(Irp, Status) \ 960 (Irp)->IoStatus.Status = (Status); \ 961 IoCompleteRequest((Irp), IO_NETWORK_INCREMENT); \ 984 #define TdiCopyLookaheadData(Destination, Source, Length, ReceiveFlags) \ 985 RtlCopyMemory(Destination, Source, Length) 991 TdiCopyMdlChainToMdlChain(
1041 TdiDeregisterProvider(
1048 TdiEnumerateAddresses(
1083 TdiPnPPowerComplete(
1153 TdiRegisterProvider(
TDI_ADD_ADDRESS_HANDLER_V2 AddAddressHandlerV2
_ANONYMOUS_UNION union _TDI20_CLIENT_INTERFACE_INFO::@2223 DUMMYUNIONNAME3
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation
struct _TDI_REQUEST_KERNEL_RECEIVEDG * PTDI_REQUEST_KERNEL_RECEIVEDG
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultDisconnectHandler(_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)
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultRcvExpeditedHandler(_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)
struct _TDI_REQUEST_KERNEL_ASSOCIATE * PTDI_REQUEST_KERNEL_ASSOCIATE
TDIKRNLAPI NTSTATUS NTAPI TdiRegisterNotificationHandler(_In_ TDI_BIND_HANDLER BindHandler, _In_ TDI_UNBIND_HANDLER UnbindHandler, _Out_ HANDLE *BindingHandle)
struct _TDI_REQUEST_KERNEL_SENDDG TDI_REQUEST_KERNEL_SENDDG
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)
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)
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultRcvDatagramHandler(_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)
_In_ PFCB _In_ LONGLONG StartingOffset
#define _In_reads_bytes_(s)
VOID NTAPI TdiInitialize()
struct _TDI_REQUEST_KERNEL_SET_EVENT * PTDI_REQUEST_KERNEL_SET_EVENT
NTSTATUS NTAPI TdiRegisterPnPHandlers(_In_ PTDI_CLIENT_INTERFACE_INFO ClientInterfaceInfo, _In_ ULONG InterfaceInfoSize, _Out_ HANDLE *BindingHandle)
struct _TDI_REQUEST_KERNEL_ACCEPT * PTDI_REQUEST_KERNEL_ACCEPT
IN BOOLEAN OUT PSTR Buffer
_In_ ULONG _In_ ULONG _In_ PMDL DestinationMdlChain
struct _TDI_REQUEST_KERNEL_ACCEPT TDI_REQUEST_KERNEL_ACCEPT
struct _TDI_REQUEST_KERNEL_QUERY_INFO * PTDI_REQUEST_KERNEL_QUERY_INFORMATION
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
_In_ ULONG _Out_writes_bytes_(DestinationBufferSize) PVOID DestinationBuffer
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultReceiveHandler(_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)
_IRQL_requires_max_(DISPATCH_LEVEL) TDIKRNLAPI NTSTATUS NTAPI TdiCopyBufferToMdl(_In_ PVOID SourceBuffer
_In_ PUNICODE_STRING DeviceName
VOID(NTAPI * TDI_DEL_ADDRESS_HANDLER_V2)(_In_ PTA_ADDRESS Address, _In_ PUNICODE_STRING DeviceName, _In_ PTDI_PNP_CONTEXT Context)
TDIKRNLAPI NTSTATUS NTAPI TdiDeregisterAddressChangeHandler(_In_ HANDLE BindingHandle)
NTSTATUS NTAPI TdiCopyBufferToMdl(IN PVOID SourceBuffer, IN ULONG SourceOffset, IN ULONG SourceBytesToCopy, IN PMDL DestinationMdlChain, IN ULONG DestinationOffset, IN PULONG BytesCopied)
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t SourceOffset
_In_ ULONG _Out_ HANDLE * BindingHandle
TDIKRNLAPI NTSTATUS NTAPI TdiRegisterAddressChangeHandler(_In_ TDI_ADD_ADDRESS_HANDLER AddHandler, _In_ TDI_DEL_ADDRESS_HANDLER DeleteHandler, _Out_ HANDLE *BindingHandle)
TDI_BINDING_HANDLER BindingHandler
_In_ ULONG _In_ ULONG _In_ PMDL _In_ ULONG _Out_ PULONG BytesCopied
struct _TDI_REQUEST_KERNEL_RECEIVEDG TDI_REQUEST_KERNEL_RECEIVEDG
NTSTATUS NTAPI TdiRegisterDeviceObject(IN PUNICODE_STRING DeviceName, OUT HANDLE *RegistrationHandle)
NTSTATUS NTAPI TdiDeregisterPnPHandlers(_In_ HANDLE BindingHandle)
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)
TDI_PNP_POWER_HANDLER PnPPowerHandler
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT _In_ ProviderPnPPowerComplete ProtocolCompletionHandler
NTSTATUS(NTAPI * PTDI_IND_ERROR)(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status)
_ANONYMOUS_UNION union _TDI20_CLIENT_INTERFACE_INFO::@2222 DUMMYUNIONNAME2
TDI_UNBIND_HANDLER UnBindHandler
TDIKRNLAPI VOID NTAPI TdiUnmapBuffer(_In_ PMDL MdlChain)
_In_ PDEVICE_OBJECT DeviceObject
TDI_DEL_ADDRESS_HANDLER DelAddressHandler
TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISCONNECT
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultSendPossibleHandler(_In_opt_ PVOID TdiEventContext, _In_opt_ PVOID ConnectionContext, _In_ ULONG BytesAvailable)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
struct _TDI_REQUEST_KERNEL_SET_INFO * PTDI_REQUEST_KERNEL_SET_INFORMATION
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
TDI_BIND_HANDLER BindHandler
struct _TDI_REQUEST_KERNEL_SET_INFO TDI_REQUEST_KERNEL_SET_INFORMATION
struct _TDI_REQUEST_KERNEL_SEND * PTDI_REQUEST_KERNEL_SEND
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultChainedReceiveHandler(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG ReceiveLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
PUNICODE_STRING ClientName
NTSTATUS NTAPI TdiRegisterNetAddress(IN PTA_ADDRESS Address, IN PUNICODE_STRING DeviceName, IN PTDI_PNP_CONTEXT Context, OUT HANDLE *RegistrationHandle)
_In_ PUNICODE_STRING _In_ PTDI_PNP_CONTEXT _Out_ HANDLE * AddrRegistrationHandle
TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_LISTEN
TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL_DISCONNECT
PTDI_CONNECTION_INFORMATION RequestConnectionInformation
PTDI_CONNECTION_INFORMATION RequestConnectionInformation
NTSTATUS(NTAPI * TDI_PNP_POWER_HANDLER)(_In_ PUNICODE_STRING DeviceName, _In_ PNET_PNP_EVENT PowerEvent, _In_ PTDI_PNP_CONTEXT Context1, _In_ PTDI_PNP_CONTEXT Context2)
struct _TDI_REQUEST_KERNEL_ASSOCIATE TDI_REQUEST_KERNEL_ASSOCIATE
struct _TDI_REQUEST_KERNEL_SEND TDI_REQUEST_KERNEL_SEND
NTSTATUS NTAPI TdiDeregisterNetAddress(IN HANDLE RegistrationHandle)
TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL_LISTEN
NTSTATUS NTAPI TdiCopyMdlToBuffer(IN PMDL SourceMdlChain, IN ULONG SourceOffset, IN PVOID DestinationBuffer, IN ULONG DestinationOffset, IN ULONG DestinationBufferSize, OUT PULONG BytesCopied)
TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_CONNECT
_ANONYMOUS_STRUCT struct _TDI20_CLIENT_INTERFACE_INFO::@2221::@2224 DUMMYSTRUCTNAME
_In_ ULONG _In_ ULONG SourceBytesToCopy
_Field_size_bytes_(SendLength) PTDI_CONNECTION_INFORMATION SendDatagramInformation
enum _TDI_PNP_OPCODE TDI_PNP_OPCODE
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
struct _TDI_PNP_CONTEXT * PTDI_PNP_CONTEXT
_ANONYMOUS_UNION union _TDI20_CLIENT_INTERFACE_INFO::@2221 DUMMYUNIONNAME
VOID(NTAPI * ProviderPnPPowerComplete)(_In_ PNET_PNP_EVENT NetEvent, _In_ NTSTATUS ProviderStatus)
_Out_ HANDLE * ProviderHandle
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)
struct _TDI_REQUEST_KERNEL_SET_EVENT TDI_REQUEST_KERNEL_SET_EVENT
TDIKRNLAPI NTSTATUS NTAPI TdiBuildNetbiosAddressEa(_Out_ PUCHAR Buffer, _In_ BOOLEAN IsGroupName, _In_ PUCHAR NetbiosName)
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)
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultChainedRcvExpeditedHandler(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG ReceiveLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
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)
TDIKRNLAPI VOID NTAPI TdiMapBuffer(_In_ PMDL MdlChain)
struct _TDI_REQUEST_KERNEL_QUERY_INFO TDI_REQUEST_KERNEL_QUERY_INFORMATION
VOID(NTAPI * TDI_DEL_ADDRESS_HANDLER)(_In_ PTA_ADDRESS Address)
NTSTATUS(NTAPI * PTDI_IND_SEND_POSSIBLE)(_In_opt_ PVOID TdiEventContext, _In_opt_ PVOID ConnectionContext, _In_ ULONG BytesAvailable)
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultChainedRcvDatagramHandler(_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)
VOID(NTAPI * TDI_ADD_ADDRESS_HANDLER)(_In_ PTA_ADDRESS Address)
TDIKRNLAPI VOID NTAPI TdiBuildNetbiosAddress(_In_ PUCHAR NetbiosName, _In_ BOOLEAN IsGroupName, _Inout_ PTA_NETBIOS_ADDRESS NetworkName)
struct _TDI_REQUEST_KERNEL_SENDDG * PTDI_REQUEST_KERNEL_SENDDG
NTSTATUS NTAPI TdiMapUserRequest(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PIO_STACK_LOCATION IrpSp)
_In_ ULONG InterfaceInfoSize
#define _ANONYMOUS_STRUCT
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
struct _TDI_PNP_CONTEXT TDI_PNP_CONTEXT
PTDI_CONNECTION_INFORMATION RequestConnectionInformation
PTDI_CONNECTION_INFORMATION RequestConnectionInformation
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)
_In_ ULONG _In_ ULONG _In_ ULONG DestinationBufferSize
VOID(NTAPI * TDI_BIND_HANDLER)(_In_ PUNICODE_STRING DeviceName)
PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation
struct _TDI20_CLIENT_INTERFACE_INFO * PTDI20_CLIENT_INTERFACE_INFO
TDI_CLIENT_INTERFACE_INFO * PTDI_CLIENT_INTERFACE_INFO
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT Context1
_In_ PIRP _In_ PIO_STACK_LOCATION IrpSp
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation
struct _TDI_REQUEST_KERNEL_RECEIVE * PTDI_REQUEST_KERNEL_RECEIVE
_Out_ HANDLE * DevRegistrationHandle
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t DestinationOffset
TDI_ADD_ADDRESS_HANDLER AddAddressHandler
_In_ PUNICODE_STRING _In_ PTDI_PNP_CONTEXT Context
struct _TDI20_CLIENT_INTERFACE_INFO TDI20_CLIENT_INTERFACE_INFO
#define _In_reads_bytes_opt_(s)
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultConnectHandler(_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)
TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISASSOCIATE
TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL_CONNECT
PTDI_CONNECTION_INFORMATION ReturnDatagramInformation
NTSTATUS(NTAPI * PTDI_IND_ERROR_EX)(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status, _In_ PVOID Buffer)
_ANONYMOUS_STRUCT struct _TDI20_CLIENT_INTERFACE_INFO::@2223::@2227 DUMMYSTRUCTNAME2
VOID(NTAPI * TDI_UNBIND_HANDLER)(_In_ PUNICODE_STRING DeviceName)
_In_ PNET_PNP_EVENT PowerEvent
TDI20_CLIENT_INTERFACE_INFO TDI_CLIENT_INTERFACE_INFO
TDIKRNLAPI BOOLEAN NTAPI TdiMatchPdoWithChainedReceiveContext(_In_ PVOID TsduDescriptor, _In_ PVOID PDO)
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)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SourceAddress
VOID(NTAPI * TDI_BINDING_HANDLER)(_In_ TDI_PNP_OPCODE PnPOpcode, _In_ PUNICODE_STRING DeviceName, _In_ PWSTR MultiSZBindList)
struct _TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL
VOID(NTAPI * TDI_ADD_ADDRESS_HANDLER_V2)(_In_ PTA_ADDRESS Address, _In_ PUNICODE_STRING DeviceName, _In_ PTDI_PNP_CONTEXT Context)
struct _TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL
TDI_DEL_ADDRESS_HANDLER_V2 DelAddressHandlerV2
_In_ PNET_PNP_EVENT _In_ NTSTATUS Status
TDI_REQUEST_KERNEL * PTDI_REQUEST_KERNEL_DISASSOCIATE
VOID NTAPI TdiReturnChainedReceives(IN PVOID *TsduDescriptors, IN ULONG NumberOfTsdus)
TDIKRNLAPI NTSTATUS NTAPI TdiDefaultErrorHandler(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status)
NTSTATUS NTAPI TdiDeregisterDeviceObject(IN HANDLE RegistrationHandle)
_Must_inspect_result_ _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR RemoteAddress
struct _TDI_REQUEST_KERNEL_RECEIVE TDI_REQUEST_KERNEL_RECEIVE