DirectPlay DirectPlay C/C++ 레퍼런스 구조체 DPN_SP_CAPS   [목차열람] [주소복사] [슬롯비우기]
DPN_SP_CAPS 구조체
 
Microsoft DirectX 9.0

DPN_SP_CAPS 구조체


서비스 프로바이더용의 파라미터의 설정과 취득에 사용한다.

구문

typedef struct _DPN_SP_CAPS {
    DWORD dwSize;
    DWORD dwFlags;
    DWORD dwNumThreads;
    DWORD dwDefaultEnumCount;
    DWORD dwDefaultEnumRetryInterval;
    DWORD dwDefaultEnumTimeout;
    DWORD dwMaxEnumPayloadSize;
    DWORD dwBuffersPerThread;
    DWORD dwSystemBufferSize;
} DPN_SP_CAPS, *PDPN_SP_CAPS;

멤버

dwSize
이 값은, 구조체의 사이즈로 설정할 필요가 있다.
dwFlags
다음의 플래그를 조합해 사용할 수 있다.
DPNSPCAPS_SUPPORTSDPNSRV
DPNSVR.EXE 는, 특정의 서비스 프로바이더에 포트 공유를 제공한다. 현재, 이 플래그는 인터넷 프로토콜 (IP)과 Internetwork Packet Exchange (IPX)만으로 이용할 수 있다. DPNSVR 의 더 자세한 정보는, 「DirectPlay DPNSVR 애플리케이션의 사용법」을 참조할것.
DPNSPCAPS_SUPPORTSBROADCAST
IP 및 IPX 애플리케이션으로, 건네받은 주소 정보가 부족하는 경우, 서비스 프로바이더가 있는 요소를 전요소에 복사 해 게임을 검색할 수 있다.
DPNSPCAPS_SUPPORTSALLADAPTERS
서비스 프로바이더는, 시스템 위에의 모든 장치를 사용한다. 장치 요소를 지정할 필요는 없다.
DPNSPCAPS_SUPPORTSTHREADPOOL
서비스 프로바이더는 thread 풀을 지원 한다.
DPNSPCAPS_NETWORKSIMULATOR
DP8Sim 서비스 프로바이더를 지정한다.
dwNumThreads
서비스 프로바이더가 네트워크 요구의 서비스에 사용하는 thread의 수. 디폴트값은, 시스템의 프로세서수를 고려한 알고리즘에 근거해 설정된다. 대부분의 애플리케이션에서는, 이 값을 변경할 필요는 없다.

프로세스로 서비스 프로바이더가 액티브하게 되면 이 값은 늘릴 수 밖에 할 수 없다. 이 값을 감소해도 효과가 없다. 설정은 프로세스 전체에 유효하고, 사용자의 현재의 Microsoft® DirectPlay® 개체와 프로세스내의 다른 모든 DirectPlay 개체에 영향을 준다.

EnumHosts,Connect, 또는 Host 메서드를 호출하기 전에 SetSPCaps 메서드를 호출했을 경우, 디폴트값보다 작은 값을 지정할 수 있다.

dwDefaultEnumCount
디폴트의 열거 카운트.
dwDefaultEnumRetryInterval
디폴트의 재시행 간격 (밀리 세컨드 단위).
dwDefaultEnumTimeout
디폴트의 열거 타임 아웃값 (밀리 세컨드 단위).
dwMaxEnumPayloadSize
DPN_MSGID_ENUM_HOSTS_QUERYDPN_MSGID_ENUM_HOSTS_RESPONSE 메시지에 부속되는 구조체의 pvResponseData 멤버에 송신할 수 있다, 유료 하중 정보의 최대 사이즈.
dwBuffersPerThread
각 DirectPlay thread에 할당하는 미처리의 수신 버퍼의 수. 수신 버퍼의 수를 증가했을 경우, DirectPlay 은 operating system 버퍼로부터 보다 많은 데이터를 꺼낼 수가 있다. 다만, 애플리케이션의 처리 속도가 데이터의 도착하는 속도를 따라 잡지 않는 경우는, 지연 시간을 연장할 수도 있다.
dwSystemBufferSize
operating system 버퍼의 사이즈. 이 버퍼는, 애플리케이션의 처리 속도가 데이터의 도착하는 속도를 따라 잡지 않을 때, 통신 장치로부터의 데이터를 보관 유지한다. 이 버퍼의 목적은, 돌연에 대량의 데이터를 받았을 경우, 또는 수신 thread가 순간적으로 stall 되었을 경우에, 데이터의 손실을 막는 것이다. 애플리케이션이 수신 데이터를 적절한 속도로 처리할 수 없는 경우,dwSystemBufferSize 를 늘리면 지연 시간이 길어지는 일이 있다. dwSystemBufferSize 를 0 으로 설정 하면, operating system 버퍼를 삭제할 수 있다. 다만, 그 경우, 수신한 데이터를 곧바로 처리할 수 없을 때에 데이터를 잃을 가능성이 있다.

주의

dwBuffersPerThreaddwSystemBufferSize 멤버를 사용하는 것은, IP 및 IPX 서비스 프로바이더 뿐이다. 이러한 멤버의 디폴트값은, 서비스 프로바이더가 설정한다. 디폴트값을 판단하려면 , 해당하는 GetSPCaps 메서드를 호출한다. 대부분의 애플리케이션에서는, 이것들 2 개의 멤버에 디폴트값을 사용할 필요가 있다. 이러한 멤버는, 기본적으로는, 대량의 데이터를 처리하는 멀티 player 게임용 서버 애플리케이션을 생성 하는 개발자가 사용한다.

구조체의 정보

헤더dplay8.h
최저한의 operating system Windows 98, Pocket PC 2002


© 2002 Microsoft Corporation. All rights reserved.
↑TOP