Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

125 lines
3.1 KiB

/*++
Copyright (c) 2001-2001 Microsoft Corporation
Module Name:
httptdi.h
Abstract:
Declarations for the TDI/MUX/SSL component that is common between
ultdi and uctdi
Author:
Rajesh Sundaram (rajeshsu)
Revision History:
--*/
#ifndef _HTTPTDI_H
#define _HTTPTDI_H
#ifdef __cplusplus
extern "C" {
#endif
#define IS_VALID_TDI_OBJECT( pobj ) \
( ( (pobj)->Handle != NULL ) && \
( (pobj)->pFileObject != NULL ) && \
( (pobj)->pDeviceObject != NULL ) )
#define UxCloseTdiObject( pTdiObject ) \
do \
{ \
if ((pTdiObject)->pFileObject != NULL) \
{ \
ObDereferenceObject( (pTdiObject)->pFileObject ); \
(pTdiObject)->pFileObject = NULL; \
} \
\
if ((pTdiObject)->Handle != NULL) \
{ \
UlCloseSystemHandle( (pTdiObject)->Handle ); \
(pTdiObject)->Handle = NULL; \
} \
} while (FALSE)
//
// A wrapper around a TDI object handle, with a pre-referenced
// FILE_OBJECT pointer and the corresponding DEVICE_OBJECT pointer.
//
typedef struct _UX_TDI_OBJECT
{
HANDLE Handle;
PFILE_OBJECT pFileObject;
PDEVICE_OBJECT pDeviceObject;
} UX_TDI_OBJECT, *PUX_TDI_OBJECT;
NTSTATUS
UxInitializeTdi(
VOID
);
VOID
UxTerminateTdi(
VOID
);
NTSTATUS
UxOpenTdiAddressObject(
IN PTRANSPORT_ADDRESS pLocalAddress,
IN ULONG LocalAddressLength,
OUT PUX_TDI_OBJECT pTdiObject
);
NTSTATUS
UxOpenTdiConnectionObject(
IN CONNECTION_CONTEXT pConnectionContext,
OUT PUX_TDI_OBJECT pTdiObject
);
NTSTATUS
UxpOpenTdiObjectHelper(
IN PUNICODE_STRING pTransportDeviceName,
IN PVOID pEaBuffer,
IN ULONG EaLength,
OUT PUX_TDI_OBJECT pTdiObject
);
NTSTATUS
UxSetEventHandler(
IN PUX_TDI_OBJECT pUlTdiObject,
IN ULONG EventType,
IN PVOID pEventHandler,
IN PVOID pEventContext
);
PIRP
UxCreateDisconnectIrp(
IN PUX_TDI_OBJECT pTdiObject,
IN ULONG_PTR Flags,
IN PIO_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
VOID
UxInitializeDisconnectIrp(
IN PIRP pIrp,
IN PUX_TDI_OBJECT pTdiObject,
IN ULONG_PTR Flags,
IN PIO_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
#ifdef __cplusplus
}; // extern "C"
#endif
#endif // _HTTPTDI_H