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 |
---|---|
|
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 |
---|---|
|
Es ist keine Benachrichtigung angegeben. RPC_ASYNC_NOTIFICATION_INFO wird nicht initialisiert. |
|
Der Benachrichtigungsmechanismus ist ein Windows-Ereignis. |
|
Der Benachrichtigungsmechanismus ist ein asynchroner Windows-Prozeduraufruf. |
|
Der Benachrichtigungsmechanismus ist ein E/A-Vervollständigungsport. |
|
Der Benachrichtigungsmechanismus ist eine Windows-Systemmeldung.
Windows Server 2003 oder höher: Die Benachrichtigung über die HWND ist veraltet. Verwenden Sie diesen Wert nicht. |
|
Der Benachrichtigungsmechanismus ist ein Funktionsrückruf. |
u
Enthält asynchrone Benachrichtigungsinformationen, die für den in NotificationType angegebenen Mechanismustyp formatiert sind.
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) |