Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

354 lines
6.5 KiB

/*++
Intel Corporation Proprietary Information
Copyright (c) 1995 Intel Corporation
This listing is supplied under the terms of a license agreement with
Intel Corporation and may not be used, copied, nor disclosed except in
accordance with the terms of that agreeement.
Module Name:
nsstate.h
Abstract:
This module gives the class definition for the NSPROVIDERSTATE object
type. The NSPROVIDERSTATE object holds the pointer to the provider object
and the handle for a WSALookup{Begin/Next/End} series.
Author:
Dirk Brandewie ([email protected]) 04-12-1995
Notes:
$Revision: 1.10 $
$Modtime: 15 Feb 1996 16:50:42 $
Revision History:
04-Dec-1995 [email protected]
created
--*/
#ifndef _NSPROVIDERSTATE_
#define _NSPROVIDERSTATE_
#include "classfwd.h"
#include "nsprovid.h"
class NSPROVIDERSTATE
{
public:
NSPROVIDERSTATE();
INT
Initialize(
PNSPROVIDER pNamespaceProvider
);
INT
WINAPI
LookupServiceBegin(
IN LPWSAQUERYSETW lpqsRestrictions,
IN LPWSASERVICECLASSINFOW lpServiceClassInfo,
IN DWORD dwControlFlags
);
INT
WINAPI
LookupServiceNext(
IN DWORD dwContolFlags,
IN OUT LPDWORD lpdwBufferLength,
OUT LPWSAQUERYSETW lpqsResults
);
INT
WINAPI
SupportsIoctl(
);
INT
WINAPI
Ioctl(
IN DWORD dwControlCode,
IN LPVOID lpvInBuffer,
IN DWORD cbInBuffer,
OUT LPVOID lpvOutBuffer,
IN DWORD cbOutBuffer,
OUT LPDWORD lpcbBytesReturned,
IN LPWSACOMPLETION lpCompletion,
IN LPWSATHREADID lpThreadId
);
INT
WINAPI
LookupServiceEnd();
INT
WINAPI
SetService(
IN LPWSASERVICECLASSINFOW lpServiceClassInfo,
IN LPWSAQUERYSETW lpqsRegInfo,
IN WSAESETSERVICEOP essOperation,
IN DWORD dwControlFlags
);
INT
WINAPI
InstallServiceClass(
IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
INT
WINAPI
RemoveServiceClass(
IN LPGUID lpServiceClassId
);
INT
WINAPI
GetServiceClassInfo(
IN OUT LPDWORD lpdwBufSize,
IN OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
);
~NSPROVIDERSTATE();
LIST_ENTRY m_query_linkage;
//Public data member to support putting this object on a linked list
private:
PNSPROVIDER m_provider;
// Pointer to the NSPROVIDER object associated with this object.
HANDLE m_provider_query_handle;
// The handle returned from NSPLookupServiceBegin() to be passed to
// NSPlookupServiceNext and NSPLookupSeviceEnd.
}; // class NSPROVIDERSTATE
inline
NSPROVIDERSTATE::NSPROVIDERSTATE()
/*++
Routine Description:
Constructor for the NSPROVIDERSTATE object. The first member function
called after this must be Initialize.
Arguments:
None
Return Value:
Returns a pointer to a NSPROVIDERSTATE object.
--*/
{
m_provider = NULL;
m_provider_query_handle = NULL;
}
inline
INT
NSPROVIDERSTATE::Initialize(
PNSPROVIDER pNamespaceProvider
)
/*++
Routine Description:
This procedure performs all initialization for the NSPROVIDERSTATE
object. This function must be invoked after the constructor, before
any other member function is invoked.
Arguments:
pNamespaceProvider - A pointer to a namespace provider object.
ProviderQueryHandle - A handle to used in calls to Lookup
Return Value:
If the function is successful, it returns ERROR_SUCCESS, otherwise it
returns an appropriate WinSock 2 error code.
--*/
{
assert (m_provider==NULL);
pNamespaceProvider->Reference ();
m_provider = pNamespaceProvider;
return(ERROR_SUCCESS);
}
inline
INT
WINAPI
NSPROVIDERSTATE::LookupServiceBegin(
IN LPWSAQUERYSETW lpqsRestrictions,
IN LPWSASERVICECLASSINFOW lpServiceClassInfo,
IN DWORD dwControlFlags
)
/*++
Routine Description:
See description in NSPROVID.H
Arguments:
None
Return Value:
None
--*/
{
return( m_provider->NSPLookupServiceBegin(
lpqsRestrictions,
lpServiceClassInfo,
dwControlFlags,
&m_provider_query_handle
));
}
inline
INT
WINAPI
NSPROVIDERSTATE::LookupServiceNext(
IN DWORD dwContolFlags,
IN OUT LPDWORD lpdwBufferLength,
OUT LPWSAQUERYSETW lpqsResults
)
/*++
Routine Description:
See description in NSPROVID.H
Arguments:
None
Return Value:
None
--*/
{
return(m_provider->NSPLookupServiceNext(
m_provider_query_handle,
dwContolFlags,
lpdwBufferLength,
lpqsResults
));
}
inline
INT
WINAPI
NSPROVIDERSTATE::SupportsIoctl(
)
{
return (m_provider->SupportsIoctl());
}
inline
INT
WINAPI
NSPROVIDERSTATE::Ioctl(
IN DWORD dwControlCode,
IN LPVOID lpvInBuffer,
IN DWORD cbInBuffer,
OUT LPVOID lpvOutBuffer,
IN DWORD cbOutBuffer,
OUT LPDWORD lpcbBytesReturned,
IN LPWSACOMPLETION lpCompletion,
IN LPWSATHREADID lpThreadId
)
{
return (m_provider->NSPIoctl(
m_provider_query_handle,
dwControlCode,
lpvInBuffer,
cbInBuffer,
lpvOutBuffer,
cbOutBuffer,
lpcbBytesReturned,
lpCompletion,
lpThreadId
));
}
inline
INT
WINAPI
NSPROVIDERSTATE::LookupServiceEnd()
/*++
Routine Description:
See description in NSPROVID.H
Arguments:
None
Return Value:
None
--*/
{
return(m_provider->NSPLookupServiceEnd(m_provider_query_handle));
}
inline
NSPROVIDERSTATE::~NSPROVIDERSTATE()
/*++
Routine Description:
Denstructor for the NSPROVIDERSTATE object.
Arguments:
None
Return Value:
None
--*/
{
if (m_provider!=NULL) {
m_provider->Dereference ();
m_provider = NULL;
}
}
#endif // _NSPROVIDERSTATE_