summaryrefslogtreecommitdiffstats
path: root/vendor/ntapi/src/ntlpcapi.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:35 +0000
commit7e5d7eea9c580ef4b41a765bde624af431942b96 (patch)
tree2c0d9ca12878fc4525650aa4e54d77a81a07cc09 /vendor/ntapi/src/ntlpcapi.rs
parentAdding debian version 1.70.0+dfsg1-9. (diff)
downloadrustc-7e5d7eea9c580ef4b41a765bde624af431942b96.tar.xz
rustc-7e5d7eea9c580ef4b41a765bde624af431942b96.zip
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/ntapi/src/ntlpcapi.rs')
-rw-r--r--vendor/ntapi/src/ntlpcapi.rs692
1 files changed, 0 insertions, 692 deletions
diff --git a/vendor/ntapi/src/ntlpcapi.rs b/vendor/ntapi/src/ntlpcapi.rs
deleted file mode 100644
index 012c9056f..000000000
--- a/vendor/ntapi/src/ntlpcapi.rs
+++ /dev/null
@@ -1,692 +0,0 @@
-use core::mem::size_of;
-use crate::ntapi_base::{CLIENT_ID, CLIENT_ID64};
-use winapi::ctypes::c_double;
-use winapi::shared::basetsd::{PSIZE_T, SIZE_T, ULONG64, ULONG_PTR};
-use winapi::shared::ntdef::{
- BOOLEAN, CSHORT, HANDLE, LARGE_INTEGER, NTSTATUS, OBJ_CASE_INSENSITIVE, PHANDLE,
- PLARGE_INTEGER, POBJECT_ATTRIBUTES, PULONG, PUNICODE_STRING, PVOID, ULONG, ULONGLONG,
- UNICODE_STRING,
-};
-use winapi::um::winnt::{
- ACCESS_MASK, PSECURITY_DESCRIPTOR, PSECURITY_QUALITY_OF_SERVICE, PSID, RTL_SRWLOCK,
- SECURITY_QUALITY_OF_SERVICE, STANDARD_RIGHTS_REQUIRED, SYNCHRONIZE,
-};
-pub const PORT_CONNECT: u32 = 0x0001;
-pub const PORT_ALL_ACCESS: u32 = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1;
-STRUCT!{struct PORT_MESSAGE_u1_s {
- DataLength: CSHORT,
- TotalLength: CSHORT,
-}}
-STRUCT!{struct PORT_MESSAGE_u2_s {
- Type: CSHORT,
- DataInfoOffset: CSHORT,
-}}
-UNION!{union PORT_MESSAGE_u1 {
- s: PORT_MESSAGE_u1_s,
- Length: ULONG,
-}}
-UNION!{union PORT_MESSAGE_u2 {
- s: PORT_MESSAGE_u2_s,
- ZeroInit: ULONG,
-}}
-UNION!{union PORT_MESSAGE_u3 {
- ClientId: CLIENT_ID,
- DoNotUseThisField: c_double,
-}}
-UNION!{union PORT_MESSAGE_u4 {
- ClientViewSize: SIZE_T,
- CallbackId: ULONG,
-}}
-STRUCT!{struct PORT_MESSAGE {
- u1: PORT_MESSAGE_u1,
- u2: PORT_MESSAGE_u2,
- u3: PORT_MESSAGE_u3,
- MessageId: ULONG,
- u4: PORT_MESSAGE_u4,
-}}
-pub type PPORT_MESSAGE = *mut PORT_MESSAGE;
-STRUCT!{struct PORT_DATA_ENTRY {
- Base: PVOID,
- Size: ULONG,
-}}
-pub type PPORT_DATA_ENTRY = *mut PORT_DATA_ENTRY;
-STRUCT!{struct PORT_DATA_INFORMATION {
- CountDataEntries: ULONG,
- DataEntries: [PORT_DATA_ENTRY; 1],
-}}
-pub type PPORT_DATA_INFORMATION = *mut PORT_DATA_INFORMATION;
-pub const LPC_REQUEST: ULONG = 1;
-pub const LPC_REPLY: ULONG = 2;
-pub const LPC_DATAGRAM: ULONG = 3;
-pub const LPC_LOST_REPLY: ULONG = 4;
-pub const LPC_PORT_CLOSED: ULONG = 5;
-pub const LPC_CLIENT_DIED: ULONG = 6;
-pub const LPC_EXCEPTION: ULONG = 7;
-pub const LPC_DEBUG_EVENT: ULONG = 8;
-pub const LPC_ERROR_EVENT: ULONG = 9;
-pub const LPC_CONNECTION_REQUEST: ULONG = 10;
-pub const LPC_KERNELMODE_MESSAGE: CSHORT = 0x8000;
-pub const LPC_NO_IMPERSONATE: CSHORT = 0x4000;
-pub const PORT_VALID_OBJECT_ATTRIBUTES: u32 = OBJ_CASE_INSENSITIVE;
-#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
-pub const PORT_MAXIMUM_MESSAGE_LENGTH: u32 = 512;
-#[cfg(target_arch = "x86")]
-pub const PORT_MAXIMUM_MESSAGE_LENGTH: u32 = 256;
-pub const LPC_MAX_CONNECTION_INFO_SIZE: u32 = 16 * size_of::<ULONG_PTR>() as u32;
-pub const PORT_TOTAL_MAXIMUM_MESSAGE_LENGTH: u32 = (PORT_MAXIMUM_MESSAGE_LENGTH
- + size_of::<PORT_MESSAGE>() as u32
- + LPC_MAX_CONNECTION_INFO_SIZE
- + 0xf) & !0xf;
-STRUCT!{struct LPC_CLIENT_DIED_MSG {
- PortMsg: PORT_MESSAGE,
- CreateTime: LARGE_INTEGER,
-}}
-pub type PLPC_CLIENT_DIED_MSG = *mut LPC_CLIENT_DIED_MSG;
-STRUCT!{struct PORT_VIEW {
- Length: ULONG,
- SectionHandle: HANDLE,
- SectionOffset: ULONG,
- ViewSize: SIZE_T,
- ViewBase: PVOID,
- ViewRemoteBase: PVOID,
-}}
-pub type PPORT_VIEW = *mut PORT_VIEW;
-STRUCT!{struct REMOTE_PORT_VIEW {
- Length: ULONG,
- ViewSize: SIZE_T,
- ViewBase: PVOID,
-}}
-pub type PREMOTE_PORT_VIEW = *mut REMOTE_PORT_VIEW;
-STRUCT!{struct PORT_MESSAGE64_u1_s {
- DataLength: CSHORT,
- TotalLength: CSHORT,
-}}
-STRUCT!{struct PORT_MESSAGE64_u2_s {
- Type: CSHORT,
- DataInfoOffset: CSHORT,
-}}
-UNION!{union PORT_MESSAGE64_u1 {
- s: PORT_MESSAGE64_u1_s,
- Length: ULONG,
-}}
-UNION!{union PORT_MESSAGE64_u2 {
- s: PORT_MESSAGE64_u2_s,
- ZeroInit: ULONG,
-}}
-UNION!{union PORT_MESSAGE64_u3 {
- ClientId: CLIENT_ID64,
- DoNotUseThisField: c_double,
-}}
-UNION!{union PORT_MESSAGE64_u4 {
- ClientViewSize: ULONGLONG,
- CallbackId: ULONG,
-}}
-STRUCT!{struct PORT_MESSAGE64 {
- u1: PORT_MESSAGE64_u1,
- u2: PORT_MESSAGE64_u2,
- u3: PORT_MESSAGE64_u3,
- MessageId: ULONG,
- u4: PORT_MESSAGE64_u4,
-}}
-pub type PPORT_MESSAGE64 = *mut PORT_MESSAGE64;
-STRUCT!{struct LPC_CLIENT_DIED_MSG64 {
- PortMsg: PORT_MESSAGE64,
- CreateTime: LARGE_INTEGER,
-}}
-pub type PLPC_CLIENT_DIED_MSG64 = *mut LPC_CLIENT_DIED_MSG64;
-STRUCT!{struct PORT_VIEW64 {
- Length: ULONG,
- SectionHandle: ULONGLONG,
- SectionOffset: ULONG,
- ViewSize: ULONGLONG,
- ViewBase: ULONGLONG,
- ViewRemoteBase: ULONGLONG,
-}}
-pub type PPORT_VIEW64 = *mut PORT_VIEW64;
-STRUCT!{struct REMOTE_PORT_VIEW64 {
- Length: ULONG,
- ViewSize: ULONGLONG,
- ViewBase: ULONGLONG,
-}}
-pub type PREMOTE_PORT_VIEW64 = *mut REMOTE_PORT_VIEW64;
-EXTERN!{extern "system" {
- fn NtCreatePort(
- PortHandle: PHANDLE,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- MaxConnectionInfoLength: ULONG,
- MaxMessageLength: ULONG,
- MaxPoolUsage: ULONG,
- ) -> NTSTATUS;
- fn NtCreateWaitablePort(
- PortHandle: PHANDLE,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- MaxConnectionInfoLength: ULONG,
- MaxMessageLength: ULONG,
- MaxPoolUsage: ULONG,
- ) -> NTSTATUS;
- fn NtConnectPort(
- PortHandle: PHANDLE,
- PortName: PUNICODE_STRING,
- SecurityQos: PSECURITY_QUALITY_OF_SERVICE,
- ClientView: PPORT_VIEW,
- ServerView: PREMOTE_PORT_VIEW,
- MaxMessageLength: PULONG,
- ConnectionInformation: PVOID,
- ConnectionInformationLength: PULONG,
- ) -> NTSTATUS;
- fn NtSecureConnectPort(
- PortHandle: PHANDLE,
- PortName: PUNICODE_STRING,
- SecurityQos: PSECURITY_QUALITY_OF_SERVICE,
- ClientView: PPORT_VIEW,
- RequiredServerSid: PSID,
- ServerView: PREMOTE_PORT_VIEW,
- MaxMessageLength: PULONG,
- ConnectionInformation: PVOID,
- ConnectionInformationLength: PULONG,
- ) -> NTSTATUS;
- fn NtListenPort(
- PortHandle: HANDLE,
- ConnectionRequest: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtAcceptConnectPort(
- PortHandle: PHANDLE,
- PortContext: PVOID,
- ConnectionRequest: PPORT_MESSAGE,
- AcceptConnection: BOOLEAN,
- ServerView: PPORT_VIEW,
- ClientView: PREMOTE_PORT_VIEW,
- ) -> NTSTATUS;
- fn NtCompleteConnectPort(
- PortHandle: HANDLE,
- ) -> NTSTATUS;
- fn NtRequestPort(
- PortHandle: HANDLE,
- RequestMessage: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtRequestWaitReplyPort(
- PortHandle: HANDLE,
- RequestMessage: PPORT_MESSAGE,
- ReplyMessage: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtReplyPort(
- PortHandle: HANDLE,
- ReplyMessage: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtReplyWaitReplyPort(
- PortHandle: HANDLE,
- ReplyMessage: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtReplyWaitReceivePort(
- PortHandle: HANDLE,
- PortContext: *mut PVOID,
- ReplyMessage: PPORT_MESSAGE,
- ReceiveMessage: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtReplyWaitReceivePortEx(
- PortHandle: HANDLE,
- PortContext: *mut PVOID,
- ReplyMessage: PPORT_MESSAGE,
- ReceiveMessage: PPORT_MESSAGE,
- Timeout: PLARGE_INTEGER,
- ) -> NTSTATUS;
- fn NtImpersonateClientOfPort(
- PortHandle: HANDLE,
- Message: PPORT_MESSAGE,
- ) -> NTSTATUS;
- fn NtReadRequestData(
- PortHandle: HANDLE,
- Message: PPORT_MESSAGE,
- DataEntryIndex: ULONG,
- Buffer: PVOID,
- BufferSize: SIZE_T,
- NumberOfBytesRead: PSIZE_T,
- ) -> NTSTATUS;
- fn NtWriteRequestData(
- PortHandle: HANDLE,
- Message: PPORT_MESSAGE,
- DataEntryIndex: ULONG,
- Buffer: PVOID,
- BufferSize: SIZE_T,
- NumberOfBytesWritten: PSIZE_T,
- ) -> NTSTATUS;
-}}
-ENUM!{enum PORT_INFORMATION_CLASS {
- PortBasicInformation = 0,
- PortDumpInformation = 1,
-}}
-EXTERN!{extern "system" {
- fn NtQueryInformationPort(
- PortHandle: HANDLE,
- PortInformationClass: PORT_INFORMATION_CLASS,
- PortInformation: PVOID,
- Length: ULONG,
- ReturnLength: PULONG,
- ) -> NTSTATUS;
-}}
-pub type PALPC_HANDLE = *mut HANDLE;
-pub type ALPC_HANDLE = HANDLE;
-pub const ALPC_PORFLG_ALLOW_LPC_REQUESTS: ULONG = 0x20000;
-pub const ALPC_PORFLG_WAITABLE_PORT: ULONG = 0x40000;
-pub const ALPC_PORFLG_SYSTEM_PROCESS: ULONG = 0x100000;
-#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
-STRUCT!{struct ALPC_PORT_ATTRIBUTES {
- Flags: ULONG,
- SecurityQos: SECURITY_QUALITY_OF_SERVICE,
- MaxMessageLength: SIZE_T,
- MemoryBandwidth: SIZE_T,
- MaxPoolUsage: SIZE_T,
- MaxSectionSize: SIZE_T,
- MaxViewSize: SIZE_T,
- MaxTotalSectionSize: SIZE_T,
- DupObjectTypes: ULONG,
- Reserved: ULONG,
-}}
-#[cfg(target_arch = "x86")]
-STRUCT!{struct ALPC_PORT_ATTRIBUTES {
- Flags: ULONG,
- SecurityQos: SECURITY_QUALITY_OF_SERVICE,
- MaxMessageLength: SIZE_T,
- MemoryBandwidth: SIZE_T,
- MaxPoolUsage: SIZE_T,
- MaxSectionSize: SIZE_T,
- MaxViewSize: SIZE_T,
- MaxTotalSectionSize: SIZE_T,
- DupObjectTypes: ULONG,
-}}
-pub type PALPC_PORT_ATTRIBUTES = *mut ALPC_PORT_ATTRIBUTES;
-pub const ALPC_MESSAGE_SECURITY_ATTRIBUTE: ULONG = 0x80000000;
-pub const ALPC_MESSAGE_VIEW_ATTRIBUTE: ULONG = 0x40000000;
-pub const ALPC_MESSAGE_CONTEXT_ATTRIBUTE: ULONG = 0x20000000;
-pub const ALPC_MESSAGE_HANDLE_ATTRIBUTE: ULONG = 0x10000000;
-STRUCT!{struct ALPC_MESSAGE_ATTRIBUTES {
- AllocatedAttributes: ULONG,
- ValidAttributes: ULONG,
-}}
-pub type PALPC_MESSAGE_ATTRIBUTES = *mut ALPC_MESSAGE_ATTRIBUTES;
-STRUCT!{struct ALPC_COMPLETION_LIST_STATE {
- Value: ULONG64,
-}}
-BITFIELD!{ALPC_COMPLETION_LIST_STATE Value: ULONG64 [
- Head set_Head[0..24],
- Tail set_Tail[24..48],
- ActiveThreadCount set_ActiveThreadCount[48..64],
-]}
-pub type PALPC_COMPLETION_LIST_STATE = *mut ALPC_COMPLETION_LIST_STATE;
-pub const ALPC_COMPLETION_LIST_BUFFER_GRANULARITY_MASK: ULONG = 0x3f;
-STRUCT!{#[repr(align(128))] struct ALPC_COMPLETION_LIST_HEADER {
- StartMagic: ULONG64,
- TotalSize: ULONG,
- ListOffset: ULONG,
- ListSize: ULONG,
- BitmapOffset: ULONG,
- BitmapSize: ULONG,
- DataOffset: ULONG,
- DataSize: ULONG,
- AttributeFlags: ULONG,
- AttributeSize: ULONG,
- __padding0: [u64; 10],
- State: ALPC_COMPLETION_LIST_STATE,
- LastMessageId: ULONG,
- LastCallbackId: ULONG,
- __padding1: [u32; 28],
- PostCount: ULONG,
- __padding2: [u32; 31],
- ReturnCount: ULONG,
- __padding3: [u32; 31],
- LogSequenceNumber: ULONG,
- __padding4: [u64; 15],
- UserLock: RTL_SRWLOCK,
- EndMagic: ULONG64,
- __padding5: [u64; 14],
-}}
-pub type PALPC_COMPLETION_LIST_HEADER = *mut ALPC_COMPLETION_LIST_HEADER;
-STRUCT!{struct ALPC_CONTEXT_ATTR {
- PortContext: PVOID,
- MessageContext: PVOID,
- Sequence: ULONG,
- MessageId: ULONG,
- CallbackId: ULONG,
-}}
-pub type PALPC_CONTEXT_ATTR = *mut ALPC_CONTEXT_ATTR;
-pub const ALPC_HANDLEFLG_DUPLICATE_SAME_ACCESS: ULONG = 0x10000;
-pub const ALPC_HANDLEFLG_DUPLICATE_SAME_ATTRIBUTES: ULONG = 0x20000;
-pub const ALPC_HANDLEFLG_DUPLICATE_INHERIT: ULONG = 0x80000;
-STRUCT!{struct ALPC_HANDLE_ATTR32 {
- Flags: ULONG,
- Reserved0: ULONG,
- SameAccess: ULONG,
- SameAttributes: ULONG,
- Indirect: ULONG,
- Inherit: ULONG,
- Reserved1: ULONG,
- Handle: ULONG,
- ObjectType: ULONG,
- DesiredAccess: ULONG,
- GrantedAccess: ULONG,
-}}
-pub type PALPC_HANDLE_ATTR32 = *mut ALPC_HANDLE_ATTR32;
-STRUCT!{struct ALPC_HANDLE_ATTR {
- Flags: ULONG,
- Reserved0: ULONG,
- SameAccess: ULONG,
- SameAttributes: ULONG,
- Indirect: ULONG,
- Inherit: ULONG,
- Reserved1: ULONG,
- Handle: HANDLE,
- HandleAttrArray: PALPC_HANDLE_ATTR32,
- ObjectType: ULONG,
- HandleCount: ULONG,
- DesiredAccess: ACCESS_MASK,
- GrantedAccess: ACCESS_MASK,
-}}
-pub type PALPC_HANDLE_ATTR = *mut ALPC_HANDLE_ATTR;
-pub const ALPC_SECFLG_CREATE_HANDLE: ULONG = 0x20000;
-STRUCT!{struct ALPC_SECURITY_ATTR {
- Flags: ULONG,
- QoS: PSECURITY_QUALITY_OF_SERVICE,
- ContextHandle: ALPC_HANDLE,
-}}
-pub type PALPC_SECURITY_ATTR = *mut ALPC_SECURITY_ATTR;
-pub const ALPC_VIEWFLG_NOT_SECURE: ULONG = 0x40000;
-STRUCT!{struct ALPC_DATA_VIEW_ATTR {
- Flags: ULONG,
- SectionHandle: ALPC_HANDLE,
- ViewBase: PVOID,
- ViewSize: SIZE_T,
-}}
-pub type PALPC_DATA_VIEW_ATTR = *mut ALPC_DATA_VIEW_ATTR;
-ENUM!{enum ALPC_PORT_INFORMATION_CLASS {
- AlpcBasicInformation = 0,
- AlpcPortInformation = 1,
- AlpcAssociateCompletionPortInformation = 2,
- AlpcConnectedSIDInformation = 3,
- AlpcServerInformation = 4,
- AlpcMessageZoneInformation = 5,
- AlpcRegisterCompletionListInformation = 6,
- AlpcUnregisterCompletionListInformation = 7,
- AlpcAdjustCompletionListConcurrencyCountInformation = 8,
- AlpcRegisterCallbackInformation = 9,
- AlpcCompletionListRundownInformation = 10,
- AlpcWaitForPortReferences = 11,
-}}
-STRUCT!{struct ALPC_BASIC_INFORMATION {
- Flags: ULONG,
- SequenceNo: ULONG,
- PortContext: PVOID,
-}}
-pub type PALPC_BASIC_INFORMATION = *mut ALPC_BASIC_INFORMATION;
-STRUCT!{struct ALPC_PORT_ASSOCIATE_COMPLETION_PORT {
- CompletionKey: PVOID,
- CompletionPort: HANDLE,
-}}
-pub type PALPC_PORT_ASSOCIATE_COMPLETION_PORT = *mut ALPC_PORT_ASSOCIATE_COMPLETION_PORT;
-STRUCT!{struct ALPC_SERVER_INFORMATION_Out {
- ThreadBlocked: BOOLEAN,
- ConnectedProcessId: HANDLE,
- ConnectionPortName: UNICODE_STRING,
-}}
-UNION!{union ALPC_SERVER_INFORMATION {
- ThreadHandle: HANDLE,
- Out: ALPC_SERVER_INFORMATION_Out,
-}}
-pub type PALPC_SERVER_INFORMATION = *mut ALPC_SERVER_INFORMATION;
-STRUCT!{struct ALPC_PORT_MESSAGE_ZONE_INFORMATION {
- Buffer: PVOID,
- Size: ULONG,
-}}
-pub type PALPC_PORT_MESSAGE_ZONE_INFORMATION = *mut ALPC_PORT_MESSAGE_ZONE_INFORMATION;
-STRUCT!{struct ALPC_PORT_COMPLETION_LIST_INFORMATION {
- Buffer: PVOID,
- Size: ULONG,
- ConcurrencyCount: ULONG,
- AttributeFlags: ULONG,
-}}
-pub type PALPC_PORT_COMPLETION_LIST_INFORMATION = *mut ALPC_PORT_COMPLETION_LIST_INFORMATION;
-ENUM!{enum ALPC_MESSAGE_INFORMATION_CLASS {
- AlpcMessageSidInformation = 0,
- AlpcMessageTokenModifiedIdInformation = 1,
- AlpcMessageDirectStatusInformation = 2,
- AlpcMessageHandleInformation = 3,
- MaxAlpcMessageInfoClass = 4,
-}}
-pub type PALPC_MESSAGE_INFORMATION_CLASS = *mut ALPC_MESSAGE_INFORMATION_CLASS;
-STRUCT!{struct ALPC_MESSAGE_HANDLE_INFORMATION {
- Index: ULONG,
- Flags: ULONG,
- Handle: ULONG,
- ObjectType: ULONG,
- GrantedAccess: ACCESS_MASK,
-}}
-pub type PALPC_MESSAGE_HANDLE_INFORMATION = *mut ALPC_MESSAGE_HANDLE_INFORMATION;
-EXTERN!{extern "system" {
- fn NtAlpcCreatePort(
- PortHandle: PHANDLE,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- PortAttributes: PALPC_PORT_ATTRIBUTES,
- ) -> NTSTATUS;
- fn NtAlpcDisconnectPort(
- PortHandle: HANDLE,
- Flags: ULONG,
- ) -> NTSTATUS;
- fn NtAlpcQueryInformation(
- PortHandle: HANDLE,
- PortInformationClass: ALPC_PORT_INFORMATION_CLASS,
- PortInformation: PVOID,
- Length: ULONG,
- ReturnLength: PULONG,
- ) -> NTSTATUS;
- fn NtAlpcSetInformation(
- PortHandle: HANDLE,
- PortInformationClass: ALPC_PORT_INFORMATION_CLASS,
- PortInformation: PVOID,
- Length: ULONG,
- ) -> NTSTATUS;
- fn NtAlpcCreatePortSection(
- PortHandle: HANDLE,
- Flags: ULONG,
- SectionHandle: HANDLE,
- SectionSize: SIZE_T,
- AlpcSectionHandle: PALPC_HANDLE,
- ActualSectionSize: PSIZE_T,
- ) -> NTSTATUS;
- fn NtAlpcDeletePortSection(
- PortHandle: HANDLE,
- Flags: ULONG,
- SectionHandle: ALPC_HANDLE,
- ) -> NTSTATUS;
- fn NtAlpcCreateResourceReserve(
- PortHandle: HANDLE,
- Flags: ULONG,
- MessageSize: SIZE_T,
- ResourceId: PALPC_HANDLE,
- ) -> NTSTATUS;
- fn NtAlpcDeleteResourceReserve(
- PortHandle: HANDLE,
- Flags: ULONG,
- ResourceId: ALPC_HANDLE,
- ) -> NTSTATUS;
- fn NtAlpcCreateSectionView(
- PortHandle: HANDLE,
- Flags: ULONG,
- ViewAttributes: PALPC_DATA_VIEW_ATTR,
- ) -> NTSTATUS;
- fn NtAlpcDeleteSectionView(
- PortHandle: HANDLE,
- Flags: ULONG,
- ViewBase: PVOID,
- ) -> NTSTATUS;
- fn NtAlpcCreateSecurityContext(
- PortHandle: HANDLE,
- Flags: ULONG,
- SecurityAttribute: PALPC_SECURITY_ATTR,
- ) -> NTSTATUS;
- fn NtAlpcDeleteSecurityContext(
- PortHandle: HANDLE,
- Flags: ULONG,
- ContextHandle: ALPC_HANDLE,
- ) -> NTSTATUS;
- fn NtAlpcRevokeSecurityContext(
- PortHandle: HANDLE,
- Flags: ULONG,
- ContextHandle: ALPC_HANDLE,
- ) -> NTSTATUS;
- fn NtAlpcQueryInformationMessage(
- PortHandle: HANDLE,
- PortMessage: PPORT_MESSAGE,
- MessageInformationClass: ALPC_MESSAGE_INFORMATION_CLASS,
- MessageInformation: PVOID,
- Length: ULONG,
- ReturnLength: PULONG,
- ) -> NTSTATUS;
-}}
-pub const ALPC_MSGFLG_REPLY_MESSAGE: ULONG = 0x1;
-pub const ALPC_MSGFLG_LPC_MODE: ULONG = 0x2;
-pub const ALPC_MSGFLG_RELEASE_MESSAGE: ULONG = 0x10000;
-pub const ALPC_MSGFLG_SYNC_REQUEST: ULONG = 0x20000;
-pub const ALPC_MSGFLG_WAIT_USER_MODE: ULONG = 0x100000;
-pub const ALPC_MSGFLG_WAIT_ALERTABLE: ULONG = 0x200000;
-pub const ALPC_MSGFLG_WOW64_CALL: ULONG = 0x80000000;
-EXTERN!{extern "system" {
- fn NtAlpcConnectPort(
- PortHandle: PHANDLE,
- PortName: PUNICODE_STRING,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- PortAttributes: PALPC_PORT_ATTRIBUTES,
- Flags: ULONG,
- RequiredServerSid: PSID,
- ConnectionMessage: PPORT_MESSAGE,
- BufferLength: PULONG,
- OutMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- InMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- Timeout: PLARGE_INTEGER,
- ) -> NTSTATUS;
- fn NtAlpcConnectPortEx(
- PortHandle: PHANDLE,
- ConnectionPortObjectAttributes: POBJECT_ATTRIBUTES,
- ClientPortObjectAttributes: POBJECT_ATTRIBUTES,
- PortAttributes: PALPC_PORT_ATTRIBUTES,
- Flags: ULONG,
- ServerSecurityRequirements: PSECURITY_DESCRIPTOR,
- ConnectionMessage: PPORT_MESSAGE,
- BufferLength: PSIZE_T,
- OutMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- InMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- Timeout: PLARGE_INTEGER,
- ) -> NTSTATUS;
- fn NtAlpcAcceptConnectPort(
- PortHandle: PHANDLE,
- ConnectionPortHandle: HANDLE,
- Flags: ULONG,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- PortAttributes: PALPC_PORT_ATTRIBUTES,
- PortContext: PVOID,
- ConnectionRequest: PPORT_MESSAGE,
- ConnectionMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- AcceptConnection: BOOLEAN,
- ) -> NTSTATUS;
- fn NtAlpcSendWaitReceivePort(
- PortHandle: HANDLE,
- Flags: ULONG,
- SendMessageA: PPORT_MESSAGE,
- SendMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- ReceiveMessage: PPORT_MESSAGE,
- BufferLength: PSIZE_T,
- ReceiveMessageAttributes: PALPC_MESSAGE_ATTRIBUTES,
- Timeout: PLARGE_INTEGER,
- ) -> NTSTATUS;
-}}
-pub const ALPC_CANCELFLG_TRY_CANCEL: ULONG = 0x1;
-pub const ALPC_CANCELFLG_NO_CONTEXT_CHECK: ULONG = 0x8;
-pub const ALPC_CANCELFLGP_FLUSH: ULONG = 0x10000;
-EXTERN!{extern "system" {
- fn NtAlpcCancelMessage(
- PortHandle: HANDLE,
- Flags: ULONG,
- MessageContext: PALPC_CONTEXT_ATTR,
- ) -> NTSTATUS;
- fn NtAlpcImpersonateClientOfPort(
- PortHandle: HANDLE,
- Message: PPORT_MESSAGE,
- Flags: PVOID,
- ) -> NTSTATUS;
- fn NtAlpcImpersonateClientContainerOfPort(
- PortHandle: HANDLE,
- Message: PPORT_MESSAGE,
- Flags: ULONG,
- ) -> NTSTATUS;
- fn NtAlpcOpenSenderProcess(
- ProcessHandle: PHANDLE,
- PortHandle: HANDLE,
- PortMessage: PPORT_MESSAGE,
- Flags: ULONG,
- DesiredAccess: ACCESS_MASK,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- ) -> NTSTATUS;
- fn NtAlpcOpenSenderThread(
- ThreadHandle: PHANDLE,
- PortHandle: HANDLE,
- PortMessage: PPORT_MESSAGE,
- Flags: ULONG,
- DesiredAccess: ACCESS_MASK,
- ObjectAttributes: POBJECT_ATTRIBUTES,
- ) -> NTSTATUS;
- fn AlpcMaxAllowedMessageLength() -> ULONG;
- fn AlpcGetHeaderSize(
- Flags: ULONG,
- ) -> ULONG;
- fn AlpcInitializeMessageAttribute(
- AttributeFlags: ULONG,
- Buffer: PALPC_MESSAGE_ATTRIBUTES,
- BufferSize: ULONG,
- RequiredBufferSize: PULONG,
- ) -> NTSTATUS;
- fn AlpcGetMessageAttribute(
- Buffer: PALPC_MESSAGE_ATTRIBUTES,
- AttributeFlag: ULONG,
- ) -> PVOID;
- fn AlpcRegisterCompletionList(
- PortHandle: HANDLE,
- Buffer: PALPC_COMPLETION_LIST_HEADER,
- Size: ULONG,
- ConcurrencyCount: ULONG,
- AttributeFlags: ULONG,
- ) -> NTSTATUS;
- fn AlpcUnregisterCompletionList(
- PortHandle: HANDLE,
- ) -> NTSTATUS;
- fn AlpcRundownCompletionList(
- PortHandle: HANDLE,
- ) -> NTSTATUS;
- fn AlpcAdjustCompletionListConcurrencyCount(
- PortHandle: HANDLE,
- ConcurrencyCount: ULONG,
- ) -> NTSTATUS;
- fn AlpcRegisterCompletionListWorkerThread(
- CompletionList: PVOID,
- ) -> BOOLEAN;
- fn AlpcUnregisterCompletionListWorkerThread(
- CompletionList: PVOID,
- ) -> BOOLEAN;
- fn AlpcGetCompletionListLastMessageInformation(
- CompletionList: PVOID,
- LastMessageId: PULONG,
- LastCallbackId: PULONG,
- );
- fn AlpcGetOutstandingCompletionListMessageCount(
- CompletionList: PVOID,
- ) -> ULONG;
- fn AlpcGetMessageFromCompletionList(
- CompletionList: PVOID,
- MessageAttributes: *mut PALPC_MESSAGE_ATTRIBUTES,
- ) -> PPORT_MESSAGE;
- fn AlpcFreeCompletionListMessage(
- CompletionList: PVOID,
- Message: PPORT_MESSAGE,
- );
- fn AlpcGetCompletionListMessageAttributes(
- CompletionList: PVOID,
- Message: PPORT_MESSAGE,
- ) -> PALPC_MESSAGE_ATTRIBUTES;
-}}