[PATCH 1/3] ntdll: Add NtAccessCheckByTypeAndAuditAlarm stub.

Mohamad Al-Jaf mohamadaljaf at gmail.com
Mon Mar 7 22:58:16 CST 2022


Signed-off-by: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
---
 dlls/ntdll/ntdll.spec      |  2 +-
 dlls/ntdll/unix/security.c | 18 ++++++++++++++++++
 include/winnt.h            |  7 +++++++
 include/winternl.h         |  1 +
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index d514bca5e11..b867767652e 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -131,7 +131,7 @@
 @ stdcall -syscall NtAccessCheck(ptr long long ptr ptr ptr ptr ptr)
 @ stdcall -syscall NtAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr)
 # @ stub NtAccessCheckByType
-# @ stub NtAccessCheckByTypeAndAuditAlarm
+@ stdcall -syscall NtAccessCheckByTypeAndAuditAlarm(ptr long ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr)
 # @ stub NtAccessCheckByTypeResultList
 # @ stub NtAccessCheckByTypeResultListAndAuditAlarm
 # @ stub NtAccessCheckByTypeResultListAndAuditAlarmByHandle
diff --git a/dlls/ntdll/unix/security.c b/dlls/ntdll/unix/security.c
index 2955355353e..728ee961aa2 100644
--- a/dlls/ntdll/unix/security.c
+++ b/dlls/ntdll/unix/security.c
@@ -796,6 +796,24 @@ NTSTATUS WINAPI NtAccessCheckAndAuditAlarm( UNICODE_STRING *subsystem, HANDLE ha
 }
 
 
+/***********************************************************************
+ *             NtAccessCheckByTypeAndAuditAlarm  (NTDLL.@)
+ */
+NTSTATUS WINAPI NtAccessCheckByTypeAndAuditAlarm( UNICODE_STRING *subsystem, HANDLE handle,
+                                                  UNICODE_STRING *type_name, UNICODE_STRING *name,
+                                                  PSECURITY_DESCRIPTOR descr, PSID sid, ACCESS_MASK access,
+                                                  AUDIT_EVENT_TYPE type, ULONG flags, POBJECT_TYPE_LIST list,
+                                                  ULONG length, GENERIC_MAPPING *mapping, BOOLEAN creation,
+                                                  ACCESS_MASK *access_granted, NTSTATUS *access_status,
+                                                  BOOLEAN *on_close )
+{
+    FIXME( "(%s, %p, %s, %s, %p, %p, 0x%08x, %u, 0x%08x, %p, %u, %p, %d, %p, %p, %p), stub\n",
+           debugstr_us(subsystem), handle, debugstr_us(type_name), debugstr_us(name), descr, sid,
+           access, type, flags, list, length, mapping, creation, access_granted, access_status, on_close );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
 /***********************************************************************
  *             NtQuerySecurityObject  (NTDLL.@)
  */
diff --git a/include/winnt.h b/include/winnt.h
index 079858d2f7d..939c2f8d7dd 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -3633,6 +3633,13 @@ typedef PVOID PACCESS_TOKEN;
 typedef PVOID PSECURITY_DESCRIPTOR;
 typedef PVOID PSID;
 
+typedef enum _AUDIT_EVENT_TYPE {
+  AuditEventObjectAccess,
+  AuditEventDirectoryServiceAccess
+} AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE;
+
+#define AUDIT_ALLOW_NO_PRIVILEGE 0x1
+
 typedef enum _TOKEN_ELEVATION_TYPE {
   TokenElevationTypeDefault = 1,
   TokenElevationTypeFull,
diff --git a/include/winternl.h b/include/winternl.h
index 6a95c4e0fdc..8e236f9d97d 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -3912,6 +3912,7 @@ NTSYSAPI NTSTATUS  WINAPI LdrUnregisterDllNotification(void*);
 NTSYSAPI NTSTATUS  WINAPI NtAcceptConnectPort(PHANDLE,ULONG,PLPC_MESSAGE,BOOLEAN,PLPC_SECTION_WRITE,PLPC_SECTION_READ);
 NTSYSAPI NTSTATUS  WINAPI NtAccessCheck(PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,PGENERIC_MAPPING,PPRIVILEGE_SET,PULONG,PULONG,NTSTATUS*);
 NTSYSAPI NTSTATUS  WINAPI NtAccessCheckAndAuditAlarm(PUNICODE_STRING,HANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,ACCESS_MASK,PGENERIC_MAPPING,BOOLEAN,PACCESS_MASK,PBOOLEAN,PBOOLEAN);
+NTSYSAPI NTSTATUS  WINAPI NtAccessCheckByTypeAndAuditAlarm(PUNICODE_STRING,HANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,PSID,ACCESS_MASK,AUDIT_EVENT_TYPE,ULONG,POBJECT_TYPE_LIST,ULONG,PGENERIC_MAPPING,BOOLEAN,PACCESS_MASK,NTSTATUS*,PBOOLEAN);
 NTSYSAPI NTSTATUS  WINAPI NtAddAtom(const WCHAR*,ULONG,RTL_ATOM*);
 NTSYSAPI NTSTATUS  WINAPI NtAdjustGroupsToken(HANDLE,BOOLEAN,PTOKEN_GROUPS,ULONG,PTOKEN_GROUPS,PULONG);
 NTSYSAPI NTSTATUS  WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
-- 
2.35.1




More information about the wine-devel mailing list