pub unsafe fn AccessCheckByType<P0, P1, P2>(
    psecuritydescriptor: P0,
    principalselfsid: P1,
    clienttoken: P2,
    desiredaccess: u32,
    objecttypelist: Option<&mut [OBJECT_TYPE_LIST]>,
    genericmapping: *const GENERIC_MAPPING,
    privilegeset: Option<*mut PRIVILEGE_SET>,
    privilegesetlength: *mut u32,
    grantedaccess: *mut u32,
    accessstatus: *mut BOOL
) -> Result<()>
where P0: IntoParam<PSECURITY_DESCRIPTOR>, P1: IntoParam<PSID>, P2: IntoParam<HANDLE>,