VOID
TdiBuildSetInformation (
IN PIRP Irp,
IN PDEVICE_OBJECT DevObj,
IN PFILE_OBJECT FileObj,
IN PVOID CompRoutine,
IN PVOID Contxt,
IN UINT SType,
IN PMDL MdlAddr
);
TdiBuildSetInformation sets up an internal device control IRP for a TDI_SET_INFORMATION request to the underlying transport in which the local-node client has already opened a file object representing an address, connection endpoint, or control channel.
The underlying transport can support additional types of set-information
requests at the discretion of the driver writer. Such a transport must define
TDI_QUERY_XXX codes in which the most significant bit is set.
TdiBuildSetInformation sets IRP_MJ_INTERNAL_DEVICE_CONTROL as the MajorFunction and TDI_SET_INFORMATION as the MinorFunction codes in the transport's I/O stack location of the given IRP.
A client can set information about an address, a connection, or a control channel, depending on the SType it passes to TdiBuildSetInformation. The given file object must be appropriate to the given SType or the transport will fail the request.
The underlying transport also can refuse to reset anything for which the client supplies an inappropriate value in the buffer at MdlAddr. For example, a client cannot force the underlying transport to extend its MaxSendSize or MaxDatagramSize beyond the transport-determined limit by issuing a TDI_QUERY_PROVIDER_INFO set-information request.
TDI_ADDRESS_INFO, TdiBuildInternalDeviceControlIrp, TdiBuildQueryInformation, TDI_CONNECTION_INFO, TDI_PROVIDER_INFO, TDI_PROVIDER_STATISTICS, TDI_SET_INFORMATION