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.

zero

Successful

nonzero

Unsuccessful

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.