cudaMemPoolCreate failing (Windows)

Can’t seem to get cu(da)MemPoolCreate to succeed. My code is pretty simple:

    SECURITY_ATTRIBUTES sa;
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle = false;
    sa.lpSecurityDescriptor = NULL;

    CUmemPoolProps poolProps;
    memset(&poolProps, 0, sizeof(poolProps));
    poolProps.allocType = CU_MEM_ALLOCATION_TYPE_PINNED;
    poolProps.handleTypes = CU_MEM_HANDLE_TYPE_WIN32;
    poolProps.location.type = CU_MEM_LOCATION_TYPE_DEVICE;
    poolProps.location.id = 0;
    poolProps.win32SecurityAttributes = &sa;

    if (cuMemPoolCreate(&pool, &poolProps) == CUDA_SUCCESS)

I always get CUDA_ERROR_INVALID_VALUE, no matter what I do, also when using a more complicated security descriptor. What am I missing? The only way to make the API call succeed is by not trying to make the pool exportable (by using CU_MEM_HANDLE_TYPE_NONE). But making the pool multi-process capable is why I want to use these APIs in the first place.

4080, 537.13, Windows 10