다음을 통해 공유


RPC_ASYNC_STATE 구조체(rpcasync.h)

RPC_ASYNC_STATE 구조체는 비동기 원격 프로시저 호출의 상태를 유지합니다. RPC_ASYNC_STATE 비동기 호출을 대기, 쿼리, 회신 또는 취소하는 데 사용되는 이 구조체에 대한 핸들입니다.

구문

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;

멤버

Size

이 구조체의 크기(바이트)입니다. 환경은 RpcAsyncInitializeHandle 이 호출되면 이 멤버를 설정합니다. 이 멤버를 수정하지 마세요.

Signature

런타임 환경은 RpcAsyncInitializeHandle 이 호출되면 이 멤버를 설정합니다. 이 멤버를 수정하지 마세요.

Lock

런타임 환경은 RpcAsyncInitializeHandle 이 호출되면 이 멤버를 설정합니다. 이 멤버를 수정하지 마세요.

Flags

flags 멤버는 다음 값으로 설정할 수 있습니다.

상수 의미
RPC_C_NOTIFY_ON_SEND_COMPLETE
비동기 작업이 완료되면 알림 메시지를 게시합니다.
 

이러한 플래그는 애플리케이션이 여러 블록에서 데이터를 보내거나 받을 수 있는 DCE 파이프와 함께 사용됩니다. 프로그램은 연속 데이터 스트림을 보내거나 각 블록이 다음 블록을 보내기 전에 전송될 때까지 기다릴 수 있습니다. 기다리지 않으면 RPC 런타임 라이브러리는 출력을 보낼 수 있을 때까지 버퍼링합니다. 데이터 전송이 완료되면 RPC 라이브러리는 애플리케이션에 알림을 보냅니다. 애플리케이션이 RPC_C_NOTIFY_ON_SEND_COMPLETE 플래그를 지정하는 경우 RPC 라이브러리는 각 보내기 작업을 완료한 후 RPC_NOTIFICATION_TYPES 열거형의 멤버를 보냅니다.

StubInfo

스텁에서 사용하도록 예약되었습니다. 이 멤버를 사용하지 마세요.

UserInfo

이 구조에서 추적하려는 애플리케이션 관련 정보에 이 멤버를 사용합니다.

RuntimeInfo

RPC 런타임 환경에서 사용하도록 예약됩니다. 이 멤버를 사용하지 마세요.

Event

발생한 이벤트의 유형입니다. RPC 런타임 환경은 이 필드를 RPC_ASYNC_EVENT 열거형의 멤버로 설정합니다.

NotificationType

RPC 런타임이 호출 완료 또는 이벤트 완료와 같은 이벤트 발생을 클라이언트에 알리는 데 사용해야 하는 알림 유형입니다.

의미
RpcNotificationTypeNone
알림이 지정되지 않았습니다. RPC_ASYNC_NOTIFICATION_INFO 초기화되지 않습니다.
RpcNotificationTypeEvent
알림 메커니즘은 Windows 이벤트입니다.
RpcNotificationTypeApc
알림 메커니즘은 Windows 비동기 프로시저 호출입니다.
RpcNotificationTypeIoc
알림 메커니즘은 I/O 완료 포트입니다.
RpcNotificationTypeHwnd
알림 메커니즘은 Windows 시스템 메시지입니다.

Windows Server 2003 이상: HWND를 통한 알림은 더 이상 사용되지 않습니다. 이 값을 사용하지 마세요.

RpcNotificationTypeCallback
알림 메커니즘은 함수 콜백입니다.

u

NotificationType에 지정된 메커니즘 유형에 대해 형식이 지정된 비동기 알림 정보를 포함합니다.

참고 Windows Vista 이전의 이 멤버에는 현재 RPC_ASYNC_NOTIFICATION_INFO 공용 구조체에서 지정한 공용 구조체의 특정 구문이 포함되어 있습니다.
 

Reserved[4]

향후 버전과의 호환성을 위해 예약되었습니다(있는 경우). 이 멤버를 사용하지 마세요.

설명

클라이언트는 RPC_ASYNC_STATE 구조체 및 연결된 핸들에 대한 공간을 할당하고 RpcAsyncInitializeHandle 을 호출하여 구조를 초기화합니다. 런타임 환경이 구조를 성공적으로 초기화한 후 클라이언트는 NotificationType을 초기화하고 RPC_ASYNC_NOTIFICATION_INFO 공용 구조체에서 정확히 다음 구조 중 하나를 초기화합니다. Windows 비동기 프로시저 호출의 경우 APC , I/O 완료 포트의 경우 IOC , Windows 시스템 메시지의 경우 HWND 또는 Windows 이벤트의 경우 hEvent 입니다. 선택한 알림 메서드가 RpcNotificationTypeNone인 경우 공용 구조체의 필드를 초기화할 필요가 없습니다. RPC 클라이언트는 필요에 따라 UserInfo 필드를 초기화할 수도 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 rpcasync.h(Rpc.h 포함)

추가 정보

비동기 RPC

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel