247 lines
4.4 KiB
C
247 lines
4.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1999-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ulapi9x.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the UL user-mode API.
|
|
|
|
Author:
|
|
|
|
Mauro Ottaviani (mauroot) 11-Aug-1999
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _API_H_
|
|
#define _API_H_
|
|
|
|
|
|
|
|
//
|
|
// undef DBG because it causes uldef.h to pull in UNICODE_STRING
|
|
// which we don't know about
|
|
//
|
|
|
|
#ifdef DBG
|
|
#define _HACK_DBG
|
|
#undef DBG
|
|
#endif
|
|
|
|
|
|
#include "uldef.h"
|
|
//#include "precomp.h" // used to be
|
|
|
|
//
|
|
// restore back DBG if it was defined above
|
|
//
|
|
|
|
#ifdef _HACK_DBG
|
|
#define DBG
|
|
#undef _HACK_DBG
|
|
#endif
|
|
|
|
|
|
|
|
#include "errors.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// your function prototypes here
|
|
//
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlInitialize(
|
|
IN ULONG Reserved
|
|
);
|
|
|
|
VOID
|
|
WINAPI
|
|
UlTerminate(
|
|
VOID
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlCreateAppPool(
|
|
OUT PHANDLE phAppPoolHandle
|
|
);
|
|
|
|
// under WinNT (ul.sys) UlCreateAppPool() returns a system handle, so, in
|
|
// order to close the AppPool, it is sufficient to call CloseHandle() passing
|
|
// in the handle returned by UlCreateAppPool(), we must provide a different
|
|
// API for win9x, since our handle is not a kernel object
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlCloseAppPool(
|
|
IN HANDLE hAppPoolHandle
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlRegisterUri(
|
|
IN HANDLE hAppPoolHandle,
|
|
IN PWSTR pUri
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlUnregisterUri(
|
|
IN HANDLE hAppPoolHandle,
|
|
IN PWSTR pUri
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlUnregisterAll(
|
|
IN HANDLE *phAppPoolHandle
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlGetOverlappedResult(
|
|
IN LPOVERLAPPED pOverlapped,
|
|
IN PULONG pNumberOfBytesTransferred,
|
|
IN BOOL bWait
|
|
);
|
|
|
|
// ul.sys, for now, exposes only server side Http messaging, our eqivalents
|
|
// are:
|
|
|
|
// UlReceiveHttpRequestHeaders() UlReceiveHttpRequest()
|
|
// UlReceiveHttpRequestEntityBody() UlReceiveEntityBody()
|
|
// UlSendHttpResponseHeaders() UlSendHttpResponse()
|
|
// UlSendHttpResponseEntityBody() UlSendEntityBody()
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlSendHttpRequestHeaders(
|
|
IN PWSTR pTargetUri,
|
|
IN PUL_HTTP_REQUEST_ID pRequestId,
|
|
IN ULONG Flags,
|
|
IN PUL_HTTP_REQUEST pRequestBuffer,
|
|
IN ULONG RequestBufferLength,
|
|
OUT PULONG pBytesSent OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlSendHttpRequestEntityBody(
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
OUT PVOID pEntityBuffer,
|
|
IN ULONG EntityBufferLength,
|
|
OUT PULONG pBytesSent OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlReceiveHttpRequestHeaders(
|
|
IN HANDLE AppPoolHandle,
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
IN PUL_HTTP_REQUEST pRequestBuffer,
|
|
IN ULONG RequestBufferLength,
|
|
OUT PULONG pBytesReturned OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlReceiveHttpRequestEntityBody(
|
|
IN HANDLE AppPoolHandle,
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
OUT PVOID pEntityBuffer,
|
|
IN ULONG EntityBufferLength,
|
|
OUT PULONG pBytesReturned,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlSendHttpResponseHeaders(
|
|
IN HANDLE AppPoolHandle,
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
IN PUL_HTTP_RESPONSE pResponseBuffer,
|
|
IN ULONG ResponseBufferLength,
|
|
IN ULONG EntityChunkCount OPTIONAL,
|
|
IN PUL_DATA_CHUNK pEntityChunks OPTIONAL,
|
|
IN PUL_CACHE_POLICY pCachePolicy OPTIONAL,
|
|
OUT PULONG pBytesSent OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlSendHttpResponseEntityBody(
|
|
IN HANDLE AppPoolHandle,
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
IN ULONG EntityChunkCount OPTIONAL,
|
|
IN PUL_DATA_CHUNK pEntityChunks OPTIONAL,
|
|
OUT PULONG pBytesSent OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlReceiveHttpResponseHeaders(
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
IN PUL_HTTP_RESPONSE pResponseBuffer,
|
|
IN ULONG ResponseBufferLength,
|
|
IN ULONG EntityChunkCount OPTIONAL,
|
|
IN PUL_DATA_CHUNK pEntityChunks OPTIONAL,
|
|
IN PUL_CACHE_POLICY pCachePolicy OPTIONAL,
|
|
OUT PULONG pBytesSent OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlReceiveHttpResponseEntityBody(
|
|
IN UL_HTTP_REQUEST_ID RequestId,
|
|
IN ULONG Flags,
|
|
OUT PVOID pEntityBuffer,
|
|
IN ULONG EntityBufferLength,
|
|
OUT PULONG pBytesSent OPTIONAL,
|
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
|
|
//
|
|
// I need some APIs for IO cancelation:
|
|
//
|
|
|
|
ULONG
|
|
WINAPI
|
|
UlCancelRequest(
|
|
IN PUL_HTTP_REQUEST_ID pRequestId
|
|
);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
|
|
#endif // _API_H_
|
|
|