서비스 호스트 사용자 상태

서비스 호스트를 사용하면 애플리케이션이 서비스 호스트 수준에서 범위가 지정된 상태 데이터를 연결할 수 있습니다. 이 상태는 다음 예제와 같이 애플리케이션이 서비스 호스트를 만들 때 WsCreateServiceHost 함수에 전달되는 WS_SERVICE_PROPERTY 구조체에 의해 지정됩니다.

void* quotePtr = (void*) quotes;
WS_SERVICE_PROPERTY serviceProperties[1] = {0};
serviceProperties[0].id = WS_SERVICE_PROPERTY_HOST_USER_STATE;
serviceProperties[0].value = &quotePtr; // assume this is some state that you want to associate with the service host
serviceProperties[0].valueSize = sizeof(quotePtr);

상태 데이터는 모든 서비스 호스트 콜백 및 서비스 작업에 사용할 수 있습니다. 콜백 및 서비스 작업은 다음 예제와 같이 WsGetOperationContextProperty 함수를 호출하고 WS_OPERATION_CONTEXT 구조에서 참조하는 컨텍스트 및 컨텍스트 속성을 WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE 열거형 값 중 하나로 지정하여 정보를 검색합니다.

QuoteTable* table = NULL;
HRESULT hr = NOERROR;
if (FAILED (WsGetOperationContextProperty (context, WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, &table, sizeof(table), NULL, error)))
    return hr;