209 lines
3.9 KiB
C
209 lines
3.9 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1991 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
Rxdevice.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Private header file for the Rx DRT ( Redirector FSCTL calls )
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Balan Sethu Raman -- Created from the workstation service code
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _RXDEVICE_INCLUDED_
|
|||
|
#define _RXDEVICE_INCLUDED_
|
|||
|
|
|||
|
#include <ntddnfs2.h> // Rdr2 include file
|
|||
|
#include <ntddbrow.h> // Datagram receiver include file
|
|||
|
|
|||
|
|
|||
|
|
|||
|
typedef struct _RX_BIND_REDIR {
|
|||
|
HANDLE EventHandle;
|
|||
|
BOOL Bound;
|
|||
|
IO_STATUS_BLOCK IoStatusBlock;
|
|||
|
LMR_REQUEST_PACKET Packet;
|
|||
|
} RX_BIND_REDIR, *PRX_BIND_REDIR;
|
|||
|
|
|||
|
typedef struct _RX_BIND_DGREC {
|
|||
|
HANDLE EventHandle;
|
|||
|
BOOL Bound;
|
|||
|
IO_STATUS_BLOCK IoStatusBlock;
|
|||
|
LMDR_REQUEST_PACKET Packet;
|
|||
|
} RX_BIND_DGREC, *PRX_BIND_DGREC;
|
|||
|
|
|||
|
typedef struct _RX_BIND {
|
|||
|
LIST_ENTRY ListEntry;
|
|||
|
PRX_BIND_REDIR Redir;
|
|||
|
PRX_BIND_DGREC Dgrec;
|
|||
|
ULONG TransportNameLength; // not including terminator
|
|||
|
WCHAR TransportName[1]; // Name of transport provider
|
|||
|
} RX_BIND, *PRX_BIND;
|
|||
|
|
|||
|
typedef enum _DDTYPE {
|
|||
|
Redirector,
|
|||
|
DatagramReceiver
|
|||
|
} DDTYPE, *PDDTYPE;
|
|||
|
|
|||
|
//
|
|||
|
// Binding/Unbinding related functions
|
|||
|
//
|
|||
|
extern NTSTATUS
|
|||
|
RxBindTransport(
|
|||
|
IN LPTSTR TransportName,
|
|||
|
IN DWORD QualityOfService,
|
|||
|
OUT LPDWORD ErrorParameter OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxBindToTransports(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxUnbindTransport(
|
|||
|
IN LPTSTR TransportName,
|
|||
|
IN DWORD ForceLevel
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxAsyncBindTransport(
|
|||
|
IN LPTSTR transportName,
|
|||
|
IN DWORD qualityOfService,
|
|||
|
IN PLIST_ENTRY pHeader
|
|||
|
);
|
|||
|
|
|||
|
extern VOID
|
|||
|
RxUnbindTransport2(
|
|||
|
IN PRX_BIND pBind
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Loading and unloading drivers
|
|||
|
//
|
|||
|
NTSTATUS
|
|||
|
RxUnloadDriver(
|
|||
|
IN LPTSTR DriverNameString
|
|||
|
);
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
RxLoadDriver(
|
|||
|
IN LPWSTR DriverNameString
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// FSCTL issued to the drivers.
|
|||
|
//
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxDeviceControlGetInfo(
|
|||
|
IN DDTYPE DeviceDriverType,
|
|||
|
IN HANDLE FileHandle,
|
|||
|
IN ULONG DeviceControlCode,
|
|||
|
IN PVOID RequestPacket,
|
|||
|
IN ULONG RequestPacketLength,
|
|||
|
OUT PVOID *OutputBuffer,
|
|||
|
IN ULONG PreferedMaximumLength,
|
|||
|
IN ULONG BufferHintSize,
|
|||
|
OUT PULONG Information
|
|||
|
);
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxRedirFsControl (
|
|||
|
IN HANDLE FileHandle,
|
|||
|
IN ULONG RedirControlCode,
|
|||
|
IN PLMR_REQUEST_PACKET Rrp,
|
|||
|
IN ULONG RrpLength,
|
|||
|
IN PVOID SecondBuffer OPTIONAL,
|
|||
|
IN ULONG SecondBufferLength,
|
|||
|
OUT PULONG Information OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxDgReceiverIoControl(
|
|||
|
IN HANDLE FileHandle,
|
|||
|
IN ULONG DgReceiverControlCode,
|
|||
|
IN PLMDR_REQUEST_PACKET Drp,
|
|||
|
IN ULONG DrpLength,
|
|||
|
IN PVOID SecondBuffer OPTIONAL,
|
|||
|
IN ULONG SecondBufferLength,
|
|||
|
OUT PULONG Information OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Start/Stop control for redirectors.
|
|||
|
//
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxOpenRedirector(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxOpenDgReceiver (
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxStartRedirector(VOID);
|
|||
|
|
|||
|
extern NTSTATUS
|
|||
|
RxStopRedirector(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Miscellanous functions fro the DRT.
|
|||
|
//
|
|||
|
extern NTSTATUS
|
|||
|
RxDeleteDomainName(
|
|||
|
IN PLMDR_REQUEST_PACKET Drp,
|
|||
|
IN DWORD DrpLength,
|
|||
|
IN LPTSTR DomainName,
|
|||
|
IN DWORD DomainNameSize
|
|||
|
);
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
RxAddDomainName(
|
|||
|
IN PLMDR_REQUEST_PACKET Drp,
|
|||
|
IN DWORD DrpLength,
|
|||
|
IN LPTSTR DomainName,
|
|||
|
IN DWORD DomainNameSize
|
|||
|
);
|
|||
|
|
|||
|
extern DWORD
|
|||
|
RxGetPrivilege(
|
|||
|
IN DWORD numPrivileges,
|
|||
|
IN PULONG pulPrivileges
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
extern DWORD
|
|||
|
RxReleasePrivilege(
|
|||
|
VOID
|
|||
|
);
|
|||
|
|
|||
|
// //
|
|||
|
// Handles to the Redirector FSD, Datgram receiver FSd
|
|||
|
//
|
|||
|
|
|||
|
extern HANDLE RxRedirDeviceHandle;
|
|||
|
extern HANDLE RxDgReceiverDeviceHandle;
|
|||
|
extern HANDLE RxRedirAsyncDeviceHandle; // redirector
|
|||
|
extern HANDLE RxDgrecAsyncDeviceHandle; // datagram receiver or "bowser"
|
|||
|
|
|||
|
|
|||
|
#endif // ifndef _RXDEVICE_INCLUDED_
|
|||
|
|