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 멤버는 다음 값으로 설정할 수 있습니다.
상수 | 의미 |
---|---|
|
비동기 작업이 완료되면 알림 메시지를 게시합니다. |
이러한 플래그는 애플리케이션이 여러 블록에서 데이터를 보내거나 받을 수 있는 DCE 파이프와 함께 사용됩니다. 프로그램은 연속 데이터 스트림을 보내거나 각 블록이 다음 블록을 보내기 전에 전송될 때까지 기다릴 수 있습니다. 기다리지 않으면 RPC 런타임 라이브러리는 출력을 보낼 수 있을 때까지 버퍼링합니다. 데이터 전송이 완료되면 RPC 라이브러리는 애플리케이션에 알림을 보냅니다. 애플리케이션이 RPC_C_NOTIFY_ON_SEND_COMPLETE 플래그를 지정하는 경우 RPC 라이브러리는 각 보내기 작업을 완료한 후 RPC_NOTIFICATION_TYPES 열거형의 멤버를 보냅니다.
StubInfo
스텁에서 사용하도록 예약되었습니다. 이 멤버를 사용하지 마세요.
UserInfo
이 구조에서 추적하려는 애플리케이션 관련 정보에 이 멤버를 사용합니다.
RuntimeInfo
RPC 런타임 환경에서 사용하도록 예약됩니다. 이 멤버를 사용하지 마세요.
Event
발생한 이벤트의 유형입니다. RPC 런타임 환경은 이 필드를 RPC_ASYNC_EVENT 열거형의 멤버로 설정합니다.
NotificationType
RPC 런타임이 호출 완료 또는 이벤트 완료와 같은 이벤트 발생을 클라이언트에 알리는 데 사용해야 하는 알림 유형입니다.
값 | 의미 |
---|---|
|
알림이 지정되지 않았습니다. RPC_ASYNC_NOTIFICATION_INFO 초기화되지 않습니다. |
|
알림 메커니즘은 Windows 이벤트입니다. |
|
알림 메커니즘은 Windows 비동기 프로시저 호출입니다. |
|
알림 메커니즘은 I/O 완료 포트입니다. |
|
알림 메커니즘은 Windows 시스템 메시지입니다.
Windows Server 2003 이상: HWND를 통한 알림은 더 이상 사용되지 않습니다. 이 값을 사용하지 마세요. |
|
알림 메커니즘은 함수 콜백입니다. |
u
NotificationType에 지정된 메커니즘 유형에 대해 형식이 지정된 비동기 알림 정보를 포함합니다.
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 포함) |