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 |
---|---|
|
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota ServerPrincipalName dari struktur ini. |
|
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota ClientPrincipalName dari struktur ini. |
|
Menunjukkan bahwa RpcServerInqCallAttributes harus mengisi anggota CallLocalAddress dari struktur ini. |
|
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 |
---|---|
|
Panggilan sedang berlangsung. |
|
Panggilan dibatalkan. |
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk