Bagikan melalui


struktur RPC_CALL_ATTRIBUTES_V2_W (rpcasync.h)

Struktur RPC_CALL_ATTRIBUTES_V2 menyediakan parameter ke fungsi RpcServerInqCallAttributes . Versi 2 menentukan dukungan untuk alamat lokal dan ID proses klien.

Sintaks

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

Anggota

Version

Versi struktur RPC_CALL_ATTRIBUTES . Untuk struktur ini, nilai ini harus diatur ke 2.

Flags

Bendera bitmasked yang menunjukkan anggota struktur ini mana yang harus diisi oleh panggilan ke RpcServerInqCallAttributes tempat struktur ini diteruskan.

Nilai Makna
RPC_QUERY_SERVER_PRINCIPAL_NAME
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota ServerPrincipalName dari struktur ini.
RPC_QUERY_CLIENT_PRINCIPAL_NAME
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota ClientPrincipalName dari struktur ini.
RPC_QUERY_CALL_LOCAL_ADDRESS
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota CallLocalAddress dari struktur ini.
RPC_QUERY_CLIENT_PID
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota ClientPID dari struktur ini. Bendera ini hanya didukung untuk urutan protokol ncalrpc.

ServerPrincipalNameBufferLength

Panjang ServerPrincipalName, dalam byte. Jika tidak mencukupi, ServerPrincipalName tidak berubah, dan ServerPrincipalNameBufferLength menunjukkan panjang buffer yang diperlukan termasuk karakter NULL yang mengakhiri, dan ERROR_MORE_DATA dikembalikan. Jika ServerPrincipalNameBufferLength lebih panjang dari yang diperlukan, setelah dikembalikan, server diatur ke panjang aktual yang digunakan, dalam byte, termasuk karakter NULL yang mengakhiri. Lihat Keterangan.

Jika urutan protokol tidak mendukung pengambilan nama prinsipal server, ServerPrincipalNameBufferLength diatur ke nol saat dikembalikan, dan buffer yang ditujukkan oleh ServerPrincipalName tidak dimodifikasi. Windows XP: Hanya grup urutan protokol ncacn_* yang mendukung pengambilan nama utama server.

Jika bendera RPC_QUERY_SERVER_PRINCIPAL_NAME tidak ditentukan, ServerPrincipalNameBufferLength diabaikan. Jika ServerPrincipalNameBufferLength bukan nol dan ServerPrincipalNameNULL, ERROR_INVALID_PARAMETER dikembalikan.

ServerPrincipalName

Arahkan ke nama utama server, jika diminta di Bendera dan didukung oleh urutan protokol. Setelah nilai pengembalian selain RPC_S_OK atau ERROR_MORE_DATA, konten ServerPrincipalName tidak terdefinisi dan mungkin telah dimodifikasi oleh RPC.

ClientPrincipalNameBufferLength

Panjang buffer yang diacu oleh ClientPrincipalName, dalam byte. Jika tidak mencukupi, ClientPrincipalName tidak berubah, dan ClientPrincipalNameBufferLength menunjukkan panjang buffer yang diperlukan termasuk karakter NULL yang mengakhiri, dan ERROR_MORE_DATA dikembalikan. Jika ClientPrincipalNameBufferLength lebih panjang dari yang diperlukan, setelah dikembalikan, itu diatur ke panjang aktual yang digunakan, dalam byte, termasuk karakter NULL yang mengakhiri.

Jika urutan protokol tidak mendukung pengambilan nama utama klien, ClientPrincipalNameBufferLength diatur ke nol saat dikembalikan, dan buffer yang ditujukan oleh ClientPrincipalName tidak dimodifikasi. Windows XP: Hanya urutan protokol ncalrpc yang mendukung pengambilan nama utama klien.

Jika bendera RPC_QUERY_CLIENT_PRINCIPAL_NAME tidak ditentukan, ClientPrincipalNameBufferLength diabaikan. Jika ClientPrincipalNameBufferLength bukan nol dan ClientPrincipalNameNULL, ERROR_INVALID_PARAMETER dikembalikan.

ClientPrincipalName

Arahkan ke nama utama klien, jika diminta di anggota Bendera dan didukung oleh urutan protokol. Setelah nilai pengembalian selain RPC_S_OK atau ERROR_MORE_DATA, konten ClientPrincipalName tidak terdefinisi dan mungkin telah dimodifikasi oleh RPC.

AuthenticationLevel

Tingkat autentikasi untuk panggilan. Lihat Konstanta Tingkat Autentikasi untuk tingkat autentikasi yang didukung oleh RPC.

AuthenticationService

Layanan autentikasi, atau penyedia keamanan, digunakan untuk melakukan panggilan prosedur jarak jauh.

NullSession

Menentukan apakah sesi Null digunakan. Nol menunjukkan panggilan tidak datang melalui sesi Null ; nilai lainnya menunjukkan sesi Null .

KernelModeCaller

ProtocolSequence

Konstanta yang menunjukkan urutan protokol tempat panggilan dilakukan.

IsClientLocal

Nilai enumerasi RpcCallClientLocality yang menunjukkan lokalitas klien (lokal, jarak jauh, atau tidak diketahui).

ClientPID

Tangani yang berisi ID proses klien panggilan. Bidang ini hanya didukung untuk urutan protokol ncalrpc, dan hanya diisi ketika RPC_QUERY_CLIENT_PID ditentukan dalam parameter Bendera .

CallStatus

Bidang bit yang menentukan status panggilan RPC.

Nilai Makna
RPC_CALL_STATUS_IN_PROGRESS
0x01
Panggilan sedang berlangsung.
RPC_CALL_STATUS_CANCELLED
0x02
Panggilan dibatalkan.
RPC_CALL_STATUS_DISCONNECTED
0x03
Klien telah terputus.

CallType

Nilai enumerasi RpcCallType yang menunjukkan jenis panggilan RPC.

CallLocalAddress

Penunjuk ke struktur RPC_CALL_LOCAL_ADDRESS yang berisi informasi ke server tentang alamat lokal tempat panggilan dilakukan.

Bidang ini tidak boleh NULL jika RPC_QUERY_CALL_LOCAL_ADDRESS ditentukan dalam Bendera; jika tidak, RPC_S_INVALID_ARG dikembalikan.

Jika buffer yang disediakan oleh aplikasi tidak mencukupi, RpcServerInqCallAttributes mengembalikan ERROR_MORE_DATA.

OpNum

Nilai opnum yang terkait dengan panggilan dalam file IDL yang sesuai.

InterfaceUuid

Antarmuka UUID tempat panggilan dilakukan.

Keterangan

Struktur RPC_CALL_ATTRIBUTES menggunakan skema penerapan versi untuk mengaktifkan fungsi RpcServerInqCallAttributes untuk menggabungkan kemampuan baru tanpa harus memperkenalkan fungsi baru dengan pengidentifikasi akhiran. Misalnya, versi kedua RPC_CALL_ATTRIBUTES, yang diidentifikasi dengan #define sederhana di header, dapat menambahkan anggota baru untuk memfasilitasi fungsionalitas baru yang dibangun ke dalam versi mendatang dari fungsi RpcServerInqCallAttributes , tanpa harus merilis fungsi alternatif yang sesuai.

Anggota Versi menunjukkan versi struktur RPC_CALL_ATTRIBUTES (saat ini RPC_CALL_ATTRIBUTES_V1 atau RPC_CALL_ATTRIBUTES_V2) yang digunakan oleh aplikasi panggilan. Identifikasi ini memungkinkan run time RPC untuk memberikan kompatibilitas mundur untuk aplikasi yang tidak menggunakan versi struktur terbaru.

Hingga proses berakhir, ClientPID secara unik mengidentifikasi proses tersebut pada klien. Ketika proses berakhir, ID proses yang ditentukan oleh ClientPID dapat digunakan oleh proses baru.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Header rpcasync.h (termasuk Rpc.h)

Lihat juga

RpcServerInqCallAttributes