CDI_Queue_Message
Registers an abort function with NWPA for a CDM message.
- Thread Context:Non-Blocking
Syntax
LONG CDI_Queue_Message (
LONG msgPutHandle,
LONG (*abortRoutine)(),
LONG abortParameter,
void (*executeRoutine)(),
LONG executeParameter);
Parameters
- msgPutHandle
- (IN) Handle to the CDM message from which the SuperHACB
was built. The value of this parameter is obtained from the msgPutHandle field
of the CDMMessageStruct structure.
- abortRoutine
- (IN) Points to the CDM's abort function. An abort
function is registered on a per request basis, when appropriate.
A CDM that internally queues its messages might have more than one
abort function. For more information about this function, see CDM_Abort_CDMMessage.
- abortParameter
- (IN) Specifies an input parameter to CDM_Abort_CDMMessage. This parameter can
contain anything that the CDM needs to complete the abort process.
This can be the handle of the original CDM message, a pointer to
the original CDM message, or other data that identifies the CDM
message that is being aborted.
- executeRoutine (Optional)
- (IN) Points to a CDM entry point where NWPA can
send postponed requests from the NetWare® elevators. This functionality
is applicable mainly to CDM filters, and even then it is limited
to a small audience of developers. If not used, which is the typical
case, this parameter should be set to zero. The prototype for this
function is
LONG executeRoutine (LONG executeParameter);
- executeParameter (Optional)
- (IN) Input parameter to the function specified in executeRoutine.
Like executeRoutine, this functionality is applicable
to a limited audience. Typically, this parameter should be set to
zero.
Return Values
The following table lists return values and descriptions.
Remarks
The CDM calls CDI_Queue_Message to register
an abort function that can be called by NWPA in case an abort is
issued on a message, so that the CDM can flag the associated SuperHACB
request for abortion as well. CDI_Queue_Message
implies only that a message has an abort function associated with
it.
Generally, a CDM does not need to perform internal queuing
of its messages unless it must build multiple SuperHACB requests
to accomplish a single CDM message request that is issued by NWPA.
However, a CDM must call CDI_Queue_Message each
time it queues a CDM message or every time is does not call either CDI_Execute_HACB or CDI_Chain_Message (for filter CDMs
only) within the context of CDM_Execute_CDMMessage for that message.