Freigeben über


RPC_ASYNC_STATE-Struktur (rpcasync.h)

Die RPC_ASYNC_STATE-Struktur enthält den Zustand eines asynchronen Remoteprozeduraufrufs. RPC_ASYNC_STATE ist ein Handle für diese Struktur, das zum Warten, Abfragen, Beantworten oder Abbrechen asynchroner Aufrufe verwendet wird.

Syntax

typedef struct _RPC_ASYNC_STATE {
  unsigned int                Size;
  unsigned long               Signature;
  long                        Lock;
  unsigned long               Flags;
  void                        *StubInfo;
  void                        *UserInfo;
  void                        *RuntimeInfo;
  RPC_ASYNC_EVENT             Event;
  RPC_NOTIFICATION_TYPES      NotificationType;
  RPC_ASYNC_NOTIFICATION_INFO u;
  LONG_PTR                    Reserved[4];
} RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;

Member

Size

Größe dieser Struktur in Bytes. Die Umgebung legt diesen Member fest, wenn RpcAsyncInitializeHandle aufgerufen wird. Ändern Sie dieses Element nicht.

Signature

Die Laufzeitumgebung legt diesen Member fest, wenn RpcAsyncInitializeHandle aufgerufen wird. Ändern Sie dieses Element nicht.

Lock

Die Laufzeitumgebung legt diesen Member fest, wenn RpcAsyncInitializeHandle aufgerufen wird. Ändern Sie dieses Element nicht.

Flags

Das Flags-Element kann auf die folgenden Werte festgelegt werden.

Konstante Bedeutung
RPC_C_NOTIFY_ON_SEND_COMPLETE
Sendet eine Benachrichtigung, wenn der asynchrone Vorgang abgeschlossen ist.
 

Diese Flags werden mit DCE-Pipes verwendet, mit denen Anwendungen Daten in mehreren Blöcken senden oder empfangen können. Programme können entweder einen fortlaufenden Datenstrom senden oder warten, bis jeder Block übertragen wird, bevor er den nächsten Block sendet. Wenn sie nicht wartet, puffert die RPC-Laufzeitbibliothek die Ausgabe, bis sie gesendet werden kann. Nach Abschluss der Datenübertragung sendet die RPC-Bibliothek der Anwendung eine Benachrichtigung. Wenn eine Anwendung das RPC_C_NOTIFY_ON_SEND_COMPLETE-Flag angibt, sendet die RPC-Bibliothek ihr ein Element der RPC_NOTIFICATION_TYPES-Enumeration , nachdem sie jeden Sendevorgang abgeschlossen hat.

StubInfo

Reserviert für die Verwendung durch die Stubs. Verwenden Sie dieses Element nicht.

UserInfo

Verwenden Sie dieses Member für alle anwendungsspezifischen Informationen, die Sie in dieser Struktur nachverfolgen möchten.

RuntimeInfo

Reserviert für die Verwendung durch die RPC-Laufzeitumgebung. Verwenden Sie dieses Element nicht.

Event

Ereignistyp, der aufgetreten ist. Die RPC-Laufzeitumgebung legt dieses Feld auf ein Element der RPC_ASYNC_EVENT-Enumeration fest.

NotificationType

Typ der Benachrichtigung, die die RPC-Laufzeit verwenden soll, um den Client über das Auftreten eines Ereignisses zu benachrichtigen, z. B. Abschluss des Aufrufs oder Abschluss des Ereignisses.

Wert Bedeutung
RpcNotificationTypeNone
Es ist keine Benachrichtigung angegeben. RPC_ASYNC_NOTIFICATION_INFO wird nicht initialisiert.
RpcNotificationTypeEvent
Der Benachrichtigungsmechanismus ist ein Windows-Ereignis.
RpcNotificationTypeApc
Der Benachrichtigungsmechanismus ist ein asynchroner Windows-Prozeduraufruf.
RpcNotificationTypeIoc
Der Benachrichtigungsmechanismus ist ein E/A-Vervollständigungsport.
RpcNotificationTypeHwnd
Der Benachrichtigungsmechanismus ist eine Windows-Systemmeldung.

Windows Server 2003 oder höher: Die Benachrichtigung über die HWND ist veraltet. Verwenden Sie diesen Wert nicht.

RpcNotificationTypeCallback
Der Benachrichtigungsmechanismus ist ein Funktionsrückruf.

u

Enthält asynchrone Benachrichtigungsinformationen, die für den in NotificationType angegebenen Mechanismustyp formatiert sind.

Hinweis Vor Windows Vista enthielt dieses Element die spezifische Syntax der Union, die derzeit von der RPC_ASYNC_NOTIFICATION_INFO Union angegeben wurde.
 

Reserved[4]

Falls vorhanden, für die Kompatibilität mit zukünftigen Versionen reserviert. Verwenden Sie dieses Element nicht.

Hinweise

Der Client weist Speicherplatz für die RPC_ASYNC_STATE-Struktur und ein zugeordnetes Handle zu und ruft RpcAsyncInitializeHandle auf, um die Struktur zu initialisieren. Nachdem die Laufzeitumgebung die Struktur erfolgreich initialisiert hat, initialisiert der Client den NotificationType und genau eine der folgenden Strukturen in der RPC_ASYNC_NOTIFICATION_INFO Union: APC für einen asynchronen Windows-Prozeduraufruf, IOC für einen E/A-Vervollständigungsport, HWND für eine Windows-Systemnachricht oder hEvent für ein Windows-Ereignis. Wenn die ausgewählte Benachrichtigungsmethode RpcNotificationTypeNone ist, muss kein Feld der Union initialisiert werden. Der RPC-Client kann optional auch das Feld UserInfo initialisieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile rpcasync.h (include Rpc.h)

Weitere Informationen

Asynchroner RPC

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel