TdiBuildDisassociateAddress

VOID
    TdiBuildDisassociateAddress (
        IN PIRP  Irp,
        IN PDEVICE_OBJECT  DevObj,
        IN PFILE_OBJECT  FileObj,
        IN PVOID  CompRoutine,
        IN PVOID  Contxt
        );

TdiBuildDisassociateAddress sets up an internal device control IRP for a TDI_DISASSOCIATE_ADDRESS request to the underlying transport in which a local-node client has already associated an address and a connection endpoint.

Parameters

Irp
Points to a client-supplied IRP, either originating in a higher level network component or allocated with TdiBuildInternalDeviceControlIrp.
DevObj
Points to the device object created by the next lower TDI transport driver.
FileObj
Points to a file object representing the connection endpoint. The client previously made a successful request, set up with TdiBuildAssociateAddress, to the transport to set up an association between this connection and a local-node address.
CompRoutine
Specifies the entry point of a client-supplied IoCompletion routine or NULL. The I/O Manager calls this routine when the given IRP is completed, unless the client sets this parameter to NULL.
Contxt
Points to a client-determined context. This client-supplied pointer is passed in to the IoCompletion routine when it is called with the completed IRP. Contxt should be NULL if CompRoutine is NULL.

Comments

TdiBuildDisassociateAddress sets IRP_MJ_INTERNAL_DEVICE_CONTROL as the MajorFunction and TDI_DISASSOCIATE_ADDRESS as the MinorFunction codes in the transport's I/O stack location of the given IRP.

A kernel-mode client makes this request to disassociate a connection endpoint for an inactive connection from the associated address object, whether that client initiated the disconnection from its remote-node peer or vice versa.

If this request is successful, the client can reassociate the connection endpoint with another local-node address or the local-node address with another connection endpoint by setting up another IRP for the underlying transport with TdiBuildAssociateAddress.

See Also

TdiBuildAssociateAddress, TdiBuildDisconnect, TdiBuildInternalDeviceControlIrp, TDI_DISASSOCIATE_ADDRESS