Posting and testing

All of the APIs listed in this document are nonblocking. The model used in all cases is to first post a desired operation, then test until the operation has completed, and finally check the resulting error code to determine if the operation was successful. Every post results in the creation of a unique ID that is used as an input to the test call. This is the mechanism by which particular posts are matched with the correct test.

It is also possible for certain operations to complete immediately at post time, therefore eliminating the need to test later if it is not required. This condition is indicated by the return code of the post call. A return code of 0 indicates that the post was successful, but that the caller should test for completion. A return code of 1 indicates that the call was immediately successful, and that no test is needed. Errors are indicated by either a negative return code, or else indicated by an output argument that is specific to that API.