TDI_REQUEST_KERNEL
typedef struct _TDI_REQUEST_KERNEL {
ULONG RequestFlags;
PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
PVOID RequestSpecific;
} TDI_REQUEST_KERNEL, *PTDI_REQUEST_KERNEL;
TDI_REQUEST_KERNEL defines a parameter format common to certain kernel-mode
TDI_XXX IOCTL requests.
Members
-
RequestFlags
-
Specifies a flag or combination of flags for certain TDI_XXX IOCTLs.
-
RequestConnectionInformation
-
Points to a TDI_CONNECTION_INFORMATION structure containing client-supplied
data.
-
ReturnConnectionInformation
-
Points to a caller-supplied buffer in which the transport returns data,
formatted as TDI_CONNECTION_INFORMATION structure.
-
RequestSpecific
-
Points to a caller-supplied value of a request-specific nature, used only for
IOCTL requests that need additional parameters, such as a time-out value.
Comments
Although not all members of the TDI_REQUEST_KERNEL structure are relevant to
each such TDI_XXX IOCTL code, this structure is used as the common
format at IrpSp->Parameters in the following TDI_XXX IOCTL
requests to TDI transport drivers:
-
For TDI_CONNECT requests, the client supplies a remote-node address to which a
connection should be offered, and possibly user connect data, at RequestConnectionInformation.
The client can supply a time-out for its connection offer at RequestSpecific,
or this member can be NULL, which directs the transport to use its own default
time-out for the connection operation. The transport returns connection
acceptance information at ReturnConnectionInformation.
-
For TDI_DISCONNECT requests, the client can set RequestFlags if the
transport supports controlled disconnects; otherwise, this member is zero. The
client can supply a time-out for the disconnection at RequestSpecific,
or this member can be NULL, which directs the transport to use its own default
time-out for the disconnection operation. The transport returns any disconnect
data and status information supplied by the corresponding remote-node
transport at ReturnConnectionInformation.
-
For TDI_LISTEN requests, the client can set RequestFlags with
TDI_QUERY_ACCEPT if the transport supports delayed-connection acceptances;
otherwise, this member is zero, which directs the transport to immediately
accept any appropriate connection offer that comes in from a remote node. The
client can specify a remote-node address from which a connection offer should
be accepted and, if RequestFlags is zero, also some connect data to be
transmitted to the remote node when the connection offer is accepted at RequestConnectionInformation.
The transport returns any connect data transmitted from the remote node, as
well as the remote-node address, at ReturnConnectionInformation when it
accepts an endpoint-to-endpoint connection for its client, thereby satisfying
its client's listen request.
Kernel-mode clients use the TdiBuildXxx macros to set up Parameters
in the transport's I/O stack location of a given IRP with the
TDI_KERNEL_REQUEST structure for the preceding kernel-mode IOCTL requests. For
TDI_DISASSOCIATE_ADDRESS requests, neither the client nor the transport pass
any information in this structure.
The format at Parameters is request-specific for all other TDI_XXX.
For more information about these structures, see the TDI_XXX references
in Chapter 2.
See Also
TdiBuildConnect, TdiBuildDisconnect,
TdiBuildListen, TDI_CONNECT,
TDI_CONNECTION_INFORMATION,
TDI_DISCONNECT, TDI_LISTEN