Prev Next

GetOverlappedAccessResults info  Overview  Group

[This is a preview of an interface that may appear in future releases of Windows.]

The GetOverlappedAccessResults function returns the results of an asynchronous call to the SetSecurityInfoEx or SetNamedSecurityInfoEx functions. GetOverlappedAccessResults can wait for the asynchronous operation to be completed, or it can return immediately with the current state of the operation.

DWORD GetOverlappedAccessResults(

    PACTRL_OVERLAPPED pOverlapped,

// pointer to the structure filled in by the asynchronous call

    BOOL fWaitForCompletion,

// TRUE indicates to wait for completion

    PDWORD pResult,

// receives the result of the asynchronous operation

    PULONG pcItemsProcessed

// receives the number of objects processed

   );

Parameters

pOverlapped
Pointer to the ACTRL_OVERLAPPED structure that was filled in by the SetSecurityInfoEx or SetNamedSecurityInfoEx call that started the asynchronous operation.
fWaitForCompletion
Flag that indicates whether GetOverlappedAccessResults returns immediately or waits for the asynchronous operation to be completed. If this value is FALSE, the function returns immediately with the current status of the operation. Otherwise, the function does not return until the operation has been completed.
pResult
Pointer to a DWORD value. If the function returns ERROR_SUCCESS, this value receives one of the following values to indicate the results of the asynchronous operation.

Value

Meaning

ERROR_SUCCESS

The operation successfully set the object’s security information.

ERROR_OPERATION_ABORTED

The operation was canceled.

pcItemsProcessed
Pointer to a ULONG value. If the function returns ERROR_SUCCESS or ERROR_IO_PENDING, this value receives the number of objects for which the security information has been set. This is useful for an operation that sets the security on multiple objects, such as a container object and the objects it contains. This parameter can be NULL.

Return Values

If the asynchronous operation has been completed, the return value is ERROR_SUCCESS and the pResult parameter receives the results of the operation.

If the asynchronous operation has not been completed, the return value is ERROR_IO_PENDING.

If the function fails, the return value can be one of the following error codes.

Value

Meaning

ERROR_BAD_PROVIDER

The asynchronous operation failed because an invalid provider name was specified.

ERROR_INVALID_PARAMETER

The pOverlapped parameter is invalid.

ERROR_NOT_ENOUGH_MEMORY

The asynchronous operation failed due to a memory allocation failure.

Remarks

The first time you call the GetOverlappedAccessResults function for a given ACTRL_OVERLAPPED structure, the function closes the handle to the event object in the structure’s hEvent member. Subsequent calls to GetOverlappedAccessResults for the same ACTRL_OVERLAPPED structure identify the operation by the information stored in the reserved members of the ACTRL_OVERLAPPED structure.

Currently, the import library for the GetOverlappedAccessResults function is ACCSRC.LIB. This is temporary. Eventually, the import library will be ADVAPI32.LIB. Meanwhile, any source code that links with the ACCSRC.LIB library must call the AccProvInit macro as follows:

    DWORD dwErrcode;



    AccProvInit(dwErrcode);

    if(dwErrcode != ERROR_SUCCESS)

    {

         // Consider this an error...

    }

 

See Also

ACTRL_OVERLAPPED, CancelOverlappedAccess, SetSecurityInfoEx, SetNamedSecurityInfoEx