Data Structures |
| struct | PSAC_MEMORY_ENTRY |
| struct | PSAC_MEMORY_LIST |
| struct | PSAC_CHANNEL_ID |
| struct | PSAC_CHANNEL_LOCK |
| struct | PSAC_CHANNEL |
| struct | PSAC_DEVICE_EXTENSION |
| struct | PSAC_CHANNEL_ATTRIBUTES |
Defines |
| #define | SAC_DBG_ENTRY_EXIT 0x01 |
| #define | SAC_DBG_INIT 0x04 |
| #define | SAC_DBG_MM 0x1000 |
| #define | SAC_DBG(x,...) |
| #define | CHECK_PARAMETER_WITH_STATUS(Parameter, Status) |
| #define | CHECK_PARAMETER(x) CHECK_PARAMETER_WITH_STATUS(x, STATUS_INVALID_PARAMETER) |
| #define | CHECK_PARAMETER1(x) CHECK_PARAMETER_WITH_STATUS(x, STATUS_INVALID_PARAMETER_1) |
| #define | CHECK_PARAMETER2(x) CHECK_PARAMETER_WITH_STATUS(x, STATUS_INVALID_PARAMETER_2) |
| #define | CHECK_PARAMETER3(x) CHECK_PARAMETER_WITH_STATUS(x, STATUS_INVALID_PARAMETER_3) |
| #define | CHECK_ALLOCATION(x) CHECK_PARAMETER_WITH_STATUS(x, STATUS_OUT_OF_MEMORY) |
| #define | SacAllocatePool(Length, Tag) MyAllocatePool(Length, Tag, __FILE__, __LINE__) |
| #define | ChannelLock(Channel, x) |
| #define | ChannelUnlock(Channel, x) |
| #define | ChannelLockOBuffer(Channel) ChannelLock(Channel, ChannelOBufferLock); |
| #define | ChannelUnlockOBuffer(Channel) ChannelUnlock(Channel, ChannelOBufferLock); |
| #define | ChannelLockIBuffer(Channel) ChannelLock(Channel, ChannelIBufferLock); |
| #define | ChannelUnlockIBuffer(Channel) ChannelUnlock(Channel, ChannelIBufferLock); |
| #define | ChannelLockAttributes(Channel) ChannelLock(Channel, ChannelAttributesLock); |
| #define | ChannelUnlockAttributes(Channel) ChannelUnlock(Channel, ChannelAttributesLock); |
| #define | ChannelInitializeEvent(Channel, Attributes, x) |
| #define | ChannelSetEvent(Channel, x) |
| #define | ChannelClearEvent(Channel, x) |
| #define | GENERIC_TAG '?pcR' |
| #define | ALLOC_BLOCK_TAG 'ApcR' |
| #define | INITIAL_BLOCK_TAG 'IpcR' |
| #define | SECURITY_BLOCK_TAG 'SpcR' |
| #define | FREE_POOL_TAG 'FpcR' |
| #define | LOCAL_MEMORY_SIGNATURE 'SSEL' |
| #define | GLOBAL_MEMORY_SIGNATURE 'DAEH' |
| #define | SAC_MEMORY_LIST_SIZE (1 * 1024 * 1024) |
| #define | SAC_OBUFFER_SIZE (2 * 1024) |
| #define | SAC_CHANNEL_FLAG_CLOSE_EVENT 0x2 |
| #define | SAC_CHANNEL_FLAG_HAS_NEW_DATA_EVENT 0x4 |
| #define | SAC_CHANNEL_FLAG_LOCK_EVENT 0x8 |
| #define | SAC_CHANNEL_FLAG_REDRAW_EVENT 0x10 |
Typedefs |
| typedef enum _SAC_CHANNEL_STATUS * | PSAC_CHANNEL_STATUS |
| typedef NTSTATUS(* | PSAC_CHANNEL_CREATE )(IN struct _SAC_CHANNEL *Channel) |
| typedef NTSTATUS(* | PSAC_CHANNEL_DESTROY )(IN struct _SAC_CHANNEL *Channel) |
| typedef NTSTATUS(* | PSAC_CHANNEL_OREAD )(IN struct _SAC_CHANNEL *Channel, IN PCHAR Buffer, IN ULONG BufferSize, OUT PULONG ByteCount) |
| typedef NTSTATUS(* | PSAC_CHANNEL_OECHO )(IN struct _SAC_CHANNEL *Channel, IN PWCHAR String, IN ULONG Length) |
| typedef NTSTATUS(* | PSAC_CHANNEL_OFLUSH )(IN struct _SAC_CHANNEL *Channel) |
| typedef NTSTATUS(* | PSAC_CHANNEL_OWRITE )(IN struct _SAC_CHANNEL *Channel, IN PWCHAR String, IN ULONG Length) |
| typedef NTSTATUS(* | PSAC_CHANNEL_IREAD )(IN struct _SAC_CHANNEL *Channel, IN PWCHAR Buffer, IN ULONG BufferSize, IN PULONG ReturnBufferSize) |
| typedef NTSTATUS(* | PSAC_CHANNEL_IBUFFER_FULL )(IN struct _SAC_CHANNEL *Channel, OUT PBOOLEAN BufferStatus) |
| typedef NTSTATUS(* | PSAC_CHANNEL_IBUFFER_LENGTH )(IN struct _SAC_CHANNEL *Channel) |
| typedef CHAR(* | PSAC_CHANNEL_IREAD_LAST )(IN struct _SAC_CHANNEL *Channel) |
| typedef NTSTATUS(* | PSAC_CHANNEL_IWRITE )(IN struct _SAC_CHANNEL *Channel, IN PCHAR Buffer, IN ULONG BufferSize) |
Enumerations |
| enum | SAC_CHANNEL_TYPE { VtUtf8,
Cmd,
Raw
} |
| enum | SAC_CHANNEL_STATUS { Inactive,
Active
} |
Functions |
| NTSTATUS | Dispatch (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS NTAPI | DispatchDeviceControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | DispatchShutdownControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| VOID | UnloadHandler (IN PDRIVER_OBJECT DriverObject) |
| VOID | FreeGlobalData (VOID) |
| BOOLEAN | InitializeDeviceData (IN PDEVICE_OBJECT DeviceObject) |
| BOOLEAN | InitializeGlobalData (IN PUNICODE_STRING RegistryPath, IN PDRIVER_OBJECT DriverObject) |
Variables |
| ULONG | SACDebug |