TdiBuildReceive

VOID
TdiBuildReceive (
IN PIRP Irp,
IN PDEVICE_OBJECT DeviceObject,
IN PFILE_OBJECT FileObject,
IN PVOID CompletionRoutine,
IN PVOID Context,
IN PMDL MdlAddress,
IN ULONG ReceiveLength
);

TdiBuildReceive builds an IRP containing a TDI_RECEIVE request message. It sets up the request message in the minor function code member of the I/O stack location and sets IRP_MJ_INTERNAL_DEVICE_CONTROL as a major function code.

Parameters

Irp

Points to the I/O stack location for the kernel-mode client IRP. The current stack location must point to the location in which TdiBuildReceive places the parameter list. IRP members related to the receive request are:

IRP Component Meaning
IoStatus.Status Specifies the final status of the receive request.
IoStatus.Information Contains the number of data bytes the internal driver receive function writes for the client.
IrpSp->MajorFunction Specifies IRP_MJ_INTERNAL_DEVICE_CONTROL.
IrpSp->MinorFunction Specifies TDI_RECEIVE.
IrpSp->FileObject Points to a connection endpoint file object.
IrpSp->Parameters Points to a TDI_REQUEST_KERNEL_RECEIVE structure.

DeviceObject

Points to the device object that describes the TDI driver.

FileObject

Points to a connection endpoint file object.

CompletionRoutine

Points to the client completion function the I/O subsystem can call when I/O is complete. This parameter must be NULL if the I/O subsystem calls no completion function.

Context

Points to the context the client associates with its completion function.

MdlAddress

Points to a chain of MDLs describing the receive buffer for the client.

ReceiveLength

Specifies the length, in bytes, of the receive buffer.

See Also

TDI_RECEIVE, TDI_REQUEST_KERNEL_RECEIVE