共用方式為


RPC_CALL_ATTRIBUTES_V2_A結構 (rpcasync.h)

RPC_CALL_ATTRIBUTES_V2 結構會提供 RpcServerInqCallAttributes 函式的參數。 第 2 版會指定本機位址和客戶端進程標識碼的支援。

語法

typedef struct tagRPC_CALL_ATTRIBUTES_V2_A {
  unsigned int              Version;
  unsigned long             Flags;
  unsigned long             ServerPrincipalNameBufferLength;
  unsigned char             *ServerPrincipalName;
  unsigned long             ClientPrincipalNameBufferLength;
  unsigned char             *ClientPrincipalName;
  unsigned long             AuthenticationLevel;
  unsigned long             AuthenticationService;
  BOOL                      NullSession;
  BOOL                      KernelModeCaller;
  unsigned long             ProtocolSequence;
  unsigned long             IsClientLocal;
  HANDLE                    ClientPID;
  unsigned long             CallStatus;
  RpcCallType               CallType;
  RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress;
  unsigned short            OpNum;
  UUID                      InterfaceUuid;
} RPC_CALL_ATTRIBUTES_V2_A;

成員

Version

RPC_CALL_ATTRIBUTES 結構的版本。 針對這個結構,這個值必須設定為 2。

Flags

位掩碼旗標,指出此結構的呼叫應該填入此結構的呼叫所傳遞的 RpcServerInqCallAttributes

意義
RPC_QUERY_SERVER_PRINCIPAL_NAME
指出 RpcServerInqCallAttributes 應該填入這個 結構的 ServerPrincipalName 成員。
RPC_QUERY_CLIENT_PRINCIPAL_NAME
指出 RpcServerInqCallAttributes 應該填入這個 結構的 ClientPrincipalName 成員。
RPC_QUERY_CALL_LOCAL_ADDRESS
指出 RpcServerInqCallAttributes 應該填入這個 結構的 CallLocalAddress 成員。
RPC_QUERY_CLIENT_PID
指出 RpcServerInqCallAttributes 應該填入這個 結構的 ClientPID 成員。 只有 ncalrpc 通訊協定序列才支援此旗標。

ServerPrincipalNameBufferLength

ServerPrincipalName 的長度,以位元組為單位。 如果不足, ServerPrincipalName 會保持不變,而 ServerPrincipalNameBufferLength 表示必要的緩衝區長度,包括終止 NULL 字元,並傳回ERROR_MORE_DATA。 如果 ServerPrincipalNameBufferLength 超過必要時間,則傳回時,它會設定為實際使用的長度,以位元組為單位,包括終止 的 NULL 字元。 請參閱<備註>。

如果通訊協定序列不支援擷取伺服器主體名稱, ServerPrincipalNameBufferLength 會在傳回時設定為零,且 ServerPrincipalName 所指向的緩衝區未修改。 Windowsxp: 只有通訊協定序列 ncacn_* 群組支援擷取伺服器主體名稱。

如果未指定RPC_QUERY_SERVER_PRINCIPAL_NAME旗標, 則會忽略 ServerPrincipalNameBufferLength 。 如果 ServerPrincipalNameBufferLength 為非零,且 ServerPrincipalNameNULL,則會傳回ERROR_INVALID_PARAMETER。

ServerPrincipalName

如果旗 中要求且通訊協議順序支援,則為伺服器主體名稱的指標。 在RPC_S_OK或ERROR_MORE_DATA以外的任何傳回值時, ServerPrincipalName 的內容未定義且可能已經由 RPC 修改。

ClientPrincipalNameBufferLength

ClientPrincipalName 所指向的緩衝區長度,以位元組為單位。 如果不足, ClientPrincipalName 未變更, ClientPrincipalNameBufferLength 會指出必要的緩衝區長度,包括終止 NULL 字元,並傳回ERROR_MORE_DATA。 如果 ClientPrincipalNameBufferLength 超過必要時間,則傳回時,它會設定為實際使用的長度,以位元組為單位,包括終止 NULL 字元。

如果通訊協定序列不支援擷取客戶端主體名稱, ClientPrincipalNameBufferLength 會在傳回時設定為零,且 ClientPrincipalName 所指向的緩衝區未修改。 Windowsxp: 只有 ncalrpc 通訊協定序列支援擷取客戶端主體名稱。

如果未指定RPC_QUERY_CLIENT_PRINCIPAL_NAME旗標, 則會忽略 ClientPrincipalNameBufferLength 。 如果 ClientPrincipalNameBufferLength 為非零,且 ClientPrincipalNameNULL,則會傳回ERROR_INVALID_PARAMETER。

ClientPrincipalName

如果 標成員中要求且通訊協議順序支援,則為客戶端主體名稱的指標。 在RPC_S_OK或ERROR_MORE_DATA以外的任何傳回值時, ClientPrincipalName 的內容是未定義且可能已經由 RPC 修改。

AuthenticationLevel

呼叫的驗證層級。 如需 RPC 支援的驗證 層級,請參閱驗證層級常數

AuthenticationService

用來進行遠端過程調用的驗證服務或安全性提供者。

NullSession

指定是否使用 Null 工作階段。 零表示呼叫不是透過 Null 會話進行;任何其他值都表示 Null 會話。

KernelModeCaller

ProtocolSequence

常數,表示呼叫的通訊協議順序。

IsClientLocal

RpcCallClientLocality 列舉值,指出用戶端 (本機、遠端或未知) 位置。

ClientPID

包含呼叫用戶端之進程標識碼的句柄。 只有 ncalrpc 通訊協定序列才支援此欄位,而且只有在 Flags 參數中指定RPC_QUERY_CLIENT_PID時才會填入。

CallStatus

指定 RPC 呼叫狀態的位欄位。

意義
RPC_CALL_STATUS_IN_PROGRESS
0x01
呼叫正在進行中。
RPC_CALL_STATUS_CANCELLED
0x02
呼叫已取消。
RPC_CALL_STATUS_DISCONNECTED
0x03
用戶端已中斷連線。

CallType

RpcCallType 列舉值,指出 RPC 呼叫的類型。

CallLocalAddress

RPC_CALL_LOCAL_ADDRESS 結構的指標,其中包含有關呼叫所在本機位址之伺服器的資訊。

如果在 Flags 中指定RPC_QUERY_CALL_LOCAL_ADDRESS,則此字段不得為 NULL;否則會傳回RPC_S_INVALID_ARG。

如果應用程式提供的緩衝區不足, RpcServerInqCallAttributes 會傳回ERROR_MORE_DATA。

OpNum

與對應IDL檔案中呼叫相關聯的opnum值。

InterfaceUuid

呼叫所在的介面 UUID。

備註

RPC_CALL_ATTRIBUTES 結構使用版本設定配置,讓 RpcServerInqCallAttributes 函式納入新功能,而不需要引進具有後綴標識元的新函式。 例如,在標頭中以簡單 #define 識別的第二個 RPC_CALL_ATTRIBUTES版本,可以新增成員,以利未來 RpcServerInqCallAttributes 函式版本中內建的新功能,而不需要釋放對應的替代函式。

Version 成員表示目前RPC_CALL_ATTRIBUTES_V1或呼叫應用程式正在使用RPC_CALL_ATTRIBUTES_V2) (RPC_CALL_ATTRIBUTES結構的版本。 此識別可讓 RPC 執行時間為不使用最新版結構的應用程式提供回溯相容性。

在進程終止之前, ClientPID 會唯一識別用戶端上的該進程。 當進程終止時,新進程可以使用 ClientPID 指定的進程識別碼。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 rpcasync.h (包含 Rpc.h)

另請參閱

RpcServerInqCallAttributes