Поделиться через


объединение RPC_ASYNC_NOTIFICATION_INFO (rpcasync.h)

Объединение RPC_ASYNC_NOTIFICATION_INFO содержит сведения об уведомлениях для асинхронных удаленных вызовов процедур. Эти сведения можно настроить для портов завершения ввода-вывода (IOC), асинхронных вызовов процедур Windows (APC), обмена сообщениями Windows и уведомлений о событиях Windows.

Синтаксис

typedef union _RPC_ASYNC_NOTIFICATION_INFO {
  struct {
    PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
    HANDLE                      hThread;
  } APC;
  struct {
    HANDLE       hIOPort;
    DWORD        dwNumberOfBytesTransferred;
    DWORD_PTR    dwCompletionKey;
    LPOVERLAPPED lpOverlapped;
  } IOC;
  struct {
    HWND hWnd;
    UINT Msg;
  } HWND;
  HANDLE                      hEvent;
  PKEVENT                     Event;
  PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;

Члены

APC

Структура, используемая для уведомлений о вызове асинхронных процедур Windows (APC).

APC.NotificationRoutine

Вызывает определяемую пользователем процедуру уведомлений APC.

APC.hThread

Дескриптор потока, в котором должно быть опубликовано уведомление APC. Значение, равное нулю, указывает на текущий поток.

IOC

Структура, используемая для уведомления через порт завершения ввода-вывода.

IOC.hIOPort

Дескриптор к порту завершения ввода-вывода.

IOC.dwNumberOfBytesTransferred

Устанавливается клиентом RPC перед запуском асинхронного вызова. При доставке уведомления на порт завершения это значение заполняется в расположении, на которое указывает параметр lpNumberOfBytesTransferred функции GetQueuedCompletionStatus .

IOC.dwCompletionKey

Устанавливается клиентом RPC перед запуском асинхронного вызова. Когда уведомление доставляется на порт завершения, это значение заполняется в расположении, на которое указывает параметр lpCompletionKey функции GetQueuedCompletionStatus .

IOC.lpOverlapped

Устанавливается клиентом RPC перед запуском асинхронного вызова. Когда уведомление доставляется на порт завершения, это значение заполняется в расположении, на которое указывает параметр lpOverlapped функции GetQueuedCompletionStatus .

HWND

Поля, используемые для уведомления сообщением Windows. Когда время выполнения RPC отправляет сообщение, wParam равен нулю, а lParam указывает на асинхронный дескриптор для вызова ( RPC_ASYNC_STATE).

Windows Server 2003 или более поздней версии: Уведомление через HWND не рекомендуется. Не используйте этот элемент.

HWND.hWnd

Определяет окно, в которое должно быть отправлено сообщение.

HWND.Msg

Сообщение для публикации.

hEvent

Дескриптор, используемый для уведомления событием.

Event

NotificationRoutine

Windows Vista или более ранние версии Windows: COM использует это внутренне для прямых обратных вызовов. Не используйте этот элемент.

Windows 7 или более поздние версии Windows: необязательный указатель на функцию, определяемую пользователем схему уведомлений, созданную на основе завершения вызова RPC. Например, приложение может вызывать SubmitThreadpoolWork из обратного вызова уведомления.

Примечание Выполнение дополнительных вызовов RPC, блокировка или выполнение длительной работы из обратных вызовов уведомлений настоятельно не рекомендуется.
 

Комментарии

До Windows Vista и более ранних версий Windows объединение RPC_ASYNC_NOTIFICATION_INFO было частью структуры RPC_ASYNC_STATE . Дополнительные сведения см . в разделе RPC_ASYNC_STATE .

Требования

   
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Верхняя часть rpcasync.h (включая Rpc.h)

См. также раздел

RPC_ASYNC_STATE