MQZ_GET_EXPLICIT_AUTHORITY_2 -获取显式权限 (已扩展)
此函数由 MQZAS_VERSION_2 授权服务组件提供,并由队列管理器启动,以检索指定组必须访问指定对象的权限 (但没有 没人 组的其他权限) 或指定主体的主组必须访问指定对象的权限。
此函数 (针对 MQZEP) 的函数标识为 MQZID_GET_EXPLICIT_AUTHORITY。
MQZ_GET_EXPLICIT_AUTHORITY_2 类似于 MQZ_GET_EXPLICIT_AUTHORITY ,但将 EntityName 参数替换为 EntityData 参数。
语法
MQZ_GET_EXPLICIT_AUTHORITY_2( QMgrName , EntityData , EntityType , ObjectName , ObjectType , Authority , ComponentData , Continuation , CompCode , Reason )参数
- QMgrName
- 类型:MQCHAR48 - 输入
队列管理器名称。 调用组件的队列管理器的名称。 此名称将用空格填充到参数的完整长度; 该名称未以空字符终止。
队列管理器名称将传递给组件以获取信息; 授权服务接口不要求组件以任何定义的方式使用该名称。
- EntityData
- 类型 :MQZED-输入
实体数据。 与要检索其对该对象的授权的实体相关的数据。 详见MQZED - 实体描述符。
- EntityType
- 类型 :MQLONG-输入实体类型。
EntityData指定的实体类型。 它必须是下列其中一个值: - ObjectName
- 类型:MQCHAR48 - 输入
对象名称。 要检索其实体权限的对象的名称。 字符串的最大长度为 48 个字符; 如果它比它短,那么将用空格填充到右边。 名称未以空字符终止。
如果
ObjectType是 MQOT_Q_MGR ,那么此名称与QMgrName相同。 - ObjectType
- 类型 :MQLONG-输入对象类型。
ObjectName指定的实体类型。 它必须是下列其中一个值: - 权限
- 类型 :MQLONG-输入
实体的权限。 如果实体具有一个权限,那么此字段等于相应的授权操作 (MQZAO_ * 常量)。 如果它具有多个权限,那么此字段是相应 MQZAO_ * 常量的按位 OR。
- ComponentData
- 类型:MQBYTE×ComponentDataLength- 输入/输出
组件数据。 此数据由队列管理器代表此特定组件保存; 此组件提供的任何函数对其进行的任何更改都将保留,并在下次调用其中一个组件函数时显示。
此数据区的长度由队列管理器在 MQZ_INIT_AUTHORITY 调用的 ComponentDataLength 参数中传递。
- 延续
- 类型:MQLONG - 输出按组件设置的连续指示符。 可以指定以下值:
- CompCode
- 类型:MQLONG - 输出完成代码。 它必须是下列其中一个值:
- 原因
- 类型:MQLONG - 输出
原因码限定 CompCode。
如果 CompCode 为 MQCC_OK:如果 CompCode 为 MQCC_FAILED:有关这些原因码的更多信息,请参阅 API 完成代码和原因码。
C 调用
MQZ_GET_EXPLICIT_AUTHORITY_2 (QMgrName, &EntityData, EntityType,
ObjectName, ObjectType, &Authority,
ComponentData, &Continuation,
&CompCode, &Reason);
传递到服务的参数声明如下:
MQCHAR48 QMgrName; /* Queue manager name */
MQZED EntityData; /* Entity data */
MQLONG EntityType; /* Entity type */
MQCHAR48 ObjectName; /* Object name */
MQLONG ObjectType; /* Object type */
MQLONG Authority; /* Authority of entity */
MQBYTE ComponentData[n]; /* Component data */
MQLONG Continuation; /* Continuation indicator set by
component */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Reason code qualifying CompCode */