[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 |
); |
Value |
Meaning |
ERROR_SUCCESS |
The operation successfully set the object’s security information. |
ERROR_OPERATION_ABORTED |
The operation was canceled. |
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. |
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... }
ACTRL_OVERLAPPED, CancelOverlappedAccess, SetSecurityInfoEx, SetNamedSecurityInfoEx