Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
To port your TDI driver to Winsock Kernel (WSK), you'll need to convert TDI tasks to their WSK equivalents as shown in the following table.
| Tasks | TDI | Winsock Kernel (WSK) |
|---|---|---|
| Register and Deregister | N/A | WskRegister and WskDeregister |
| Capture and Release Provider NPI | N/A | WskCaptureProviderNPI and WskReleaseProviderNPI |
| Create Address File Object | Create EaBuffer, then call ZwCreateFile | No longer necessary. See WskSocket. |
| Create Connection File Object | Create connection EaBuffer, then call ZwCreateFile | No longer necessary. See WskSocket and WskAcceptEvent. |
| Associate Address | TDI_ASSOCIATE_ADDRESS | WskBind |
| Set Event Handlers | TDI_SET_EVENT_HANDLER | WskControlSocket or static variation using WskControlClient |
| Clear Event Handlers | TDI_SET_EVENT_HANDLER | WskControlSocket |
| Connect | TDI_CONNECT | WskConnect |
| Disconnect | TDI_DISCONNECT | WskDisconnect |
| Send | TDI_SEND | WskSend |
| Receive | TDI_RECEIVE | WskReceive |
| Disassociate Address | TDI_DISASSOCIATE_ADDRESS | N/A |
| Receive Handler | ClientEventReceive, TDI_RECEIVE | WskReceiveEvent |
| Connect Handler | ClientEventConnect, TDI_CONNECT | WskAccept |
| Close Socket or Connection | ObDereferenceObject or ZwClose | WskCloseSocket |