Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: jankowalski25
Biblioteki C/C++

AccessCheckByTypeAndAuditAlarm

[funkcja] Określa, czy deskryptor zabezpieczeń pozwala na ustawienie dostępu dla klienta impersonowanego przez wywoływany wątek.

Składnia

C/C++
#include <windows.h>

BOOL WINAPI AccessCheckByTypeAndAuditAlarm(
LPCTSTR SubsystemName,
LPVOID HandleId,
LPCTSTR ObjectTypeName,
LPCTSTR ObjectName,
PSECURITY_DESCRIPTOR pSecurityDescriptor,
PSID PrincipalSelfSid,
DWORD DesiredAccess,
AUDIT_EVENT_TYPE AuditType,
DWORD Flags,
POBJECT_TYPE_LIST ObjectTypeList,
DWORD ObjectTypeListLength,
PGENERIC_MAPPING GenericMapping,
BOOL ObjectCreation,
LPDWORD GrantedAccess,
LPBOOL AccessStatus,
LPBOOL pfGenerateOnClose
);

Argumenty

ArgumentOpis
SubsystemNameWskaźnik do łańcucha znaków zakończonego znakiem zerowym określającego nazwę subsystemu wywołującego funkcję.
HandleIdWskaźnik do unikalnej wartości zawierającej uchwyt klienta do obiektu. Jeśli wystąpi odmowa dostępu, ta wartość zostanie zignorowana.
ObjectTypeNameWskaźnik do łańcucha znaków zakończonego znakiem zerowym określającego typ tworzonego lub udostępnianego obiektu.
ObjectNameWskaźnik do łańcucha znaków zakończonego znakiem zerowym określającego nazwę tworzonego lub udostępnianego obiektu.
pSecurityDescriptorWskaźnik do struktury » WinAPISECURITY_DESCRIPTOR określającej sprawdzany dostęp.
PrincipalSelfSidWskaźnik do identyfikatora zabezpieczeń (SID). Jeśli deskryptor zabezpieczeń jest powiązany z obiektem głównym (na przykład obiektem użytkownika), wartość tego argumentu powinna zawierać SID tego obiektu. Jeśli obiekt nie jest obiektem głównym, to wartość tego argumentu powinna wynosić NULL.
DesiredAccessMaska dostępu określająca uprawnienia do sprawdzenia. Taka maska musi być mapowana przez funkcję MapGenericMask, aby nie zawierała żadnych uprawnień. Jeśli wartość tego argumentu wynosi MAXIMUM_ALLOWED, funkcja ustawia maskę dostępu w argumencie GrantedAccess w celu udostępnienia maksymalnych możliwych uprawnień zawartych w deskryptorze zabezpieczeń dla klienta.
AuditTypeTyp audytu do utworzenia. Do nadania wartości dla tego argumentu można wykorzystać wartości zawarte w typie wyliczeniowym AUDIT_EVENT_TYPE.
FlagsFlaga określająca działanie funkcji w przypadku, gdy wywoływany proces nie ma włączonego przywileju SE_AUDIT_NAME. W tej sytuacji jeśli flaga AUDIT_ALLOW_NO_PRIVILEGE jest ustawiona, funkcja sprawdza dostęp bez tworzenia komunikatu audytu, natomiast jeśli wartość tego argumentu wynosi zero, funkcja kończy się niepowodzeniem.
ObjectTypeListWskaźnik do tablicy struktur OBJECT_TYPE_LIST określających hierarchię okiektów, dla której dostęp jest sprawdzany. Każdy element w tablicy określa GUID zawierający typ obiektu i jego miejsce w hierarchii. Tablica nie powinna zawierać dwóch elementów z tym samym GUID. Tablica musi zawierać przynajmniej jeden element. Pierwszy z nich musi mieć priorytet zero i określać własny obiekt. Tablica może mieć tylko jeden taki element. Drugi element jest subobiektem o priorytecie 1. Każdy element o niższym priorytecie zawiera informacje dotyczące od dwóch do czterech subobiektów. Mimo tego priorytety elementów w tablicy mogą wyglądać następująco: {0,1,2,2,1,2,3}. Jeśli typy obiektów w tablicy występują w niewłaściwej kolejności, funkcja zakończy się niepowodzeniem i ustawi błąd ERROR_INVALID_PARAMETER.
ObjectTypeListLengthOkreśla liczbę elementów w tablicy wskazywanej przez argument ObjectTypeList.
GenericMappingWskaźnik do struktury GENERIC_MAPPING powiązanej z obiektem, dla którego jest sprawdzany dostęp.
ObjectCreationGdy wartość tego argumentu wynosi TRUE wywoływany program utworzy nowy obiekt, natomiast jeśli wynosi FALSE, to zostanie otwarty istniejący obiekt (jeśli dostęp zostanie przyznany).
GrantedAccessWskaźnik do maski dostępu pobierającej uprawnienia. Jeśli wartość argumentu AccessStatus jest ustawiona na FALSE, funkcja ustawia maskę dostępu na zero. Jeśli funkcja zakończy się niepowodzeniem, to nie ustawia maski dostępu.
AccessStatusWskaźnik do zmiennej pobierającej wynik sprawdzenia dostępu. Jeśli deskryptor zabezpieczeń pozwala na żądanie uprawnień dostępu do klienta określanego przez token dostępu, wartość tego argumentu jest ustawiana na TRUE, w przeciwnym wypadku FALSE.
pfGenerateOnCloseWskaźnik do flagi ustawionej przez utworzenie audytu podczas wyjścia z funkcji. Należy przekazać wartość tej flagi do funkcji ObjectCloseAuditAlarm podczas zamykania uchwytu do obiektu.
Łańcuchy znaków pojawiające się we wszystkich komunikatach audytów tworzonych przez tą funkcję są umieszczone w następujących argumentach:
  • SubsystemName
  • ObjectTypeName
  • ObjectName

Zwracana wartość

Jeśli funkcja zakończy się bez błędów, funkcja zwraca wartość niezerową, inaczej zero. Aby uzyskać rozszerzone informacje o błędach, należy wywołać funkcję » WinAPIGetLastError.

Dodatkowe informacje

Jeśli deskryptor zabezpieczeń zawiera listę kontroli dostępu do systemu (SACL) oraz wartości ACE pasujące do klienta, funkcja tworzy wszelkie niezbędne audyty w logu zdarzeń zabezpieczeń. Alarmy nie są obecnie wspierane. Funkcja może sprawdzić uprawnienia klienta i pozwolić na dostęp lub odmówić dostępu do danego obiektu, całej hierarchii obiektów, ich ustawień oraz właściwości. Jeśli wartość argumentu PrincipalSelfSid oraz ObjectTypeList wynosi NULL, wartość argumentu AuditType wynosi AuditEventObjectAccess oraz wartość argumentu Flags wynosi zero, funkcja działa w ten sam sposób jak funkcja » WinAPIAccessCheckAndAuditAlarm. Tablica zawarta w argumencie ObjectTypeList nie musi określać całego zdefniowanego obiektu. Zazwyczaj określa jego podzbiór, dla którego jest sprawdzany dostęp, na przykład aby sprawdzić dostęp do dwóch elementów z listy, należy przekazać jako argument listę z czterema elementami: przekazywany obiekt z priorytetem zero, ustawienia listy z priorytetem 1 i dwa elementy o priorytecie 2. Funkcja sprawdza ACE odpowiadające temu obiektowi i obiektom określającym ACE dla typów obiektów wymienionych w tablicy ObjectTypeList. Funkcja ignoruje określone obiekty ACE znajdujące się poza tą listą. Jednak wynik zwracany w argumencie AccessStatus powoduje przyznanie dostępu do podzbioruy obiektów definiowanych w argumencie ObjectTypeList, a nie do całego obiektu. Ta funkcja tworzy komunikaty audytów w logu zdarzeń zabezpieczeń, jeśli przywilej SE_AUDIT_NAME jest włączony dla wywoływanego procesu. System sprawdza ustawienie tego przywileju w podstawowym tokenie wywoływanego procesu, a nie w impersonowanym tokenie tego wątku. Gdy ten przywilej jest wyłączony oraz jeśli argument Flags zawiera flagę AUDIT_ALLOW_NO_PRIVILEGE, funkcja sprawdza dostęp bez tworzenia komunikatów audytów. Funkcja zakończy się niepowodzeniem, jeśli wywoływany wątek nie jest impersonowany przez klienta. Jeśli deskryptor zabezpieczeń nie zawiera własności i grup SID, funkcja ustawi błąd ERROR_INVALID_SECURITY_DESCR.

Wymagania

Minimalny system klientaWindows XP (tylko aplikacje biurowe).
Minimalny system serweraWindows Server 2003 (tylko aplikacje biurowe).
NagłówekWinbase.h (dołącza Windows.h).
BibliotekaAdvapi32.lib
DLLAdvapi32.dll
UNICODEAccessCheckByTypeAndAuditAlarmW
ANSIAccessCheckByTypeAndAuditAlarmA

Zagadnienia powiązane

AccessCheckAndAuditAlarmOkreśla, czy deskryptor zabezpieczeń zapewnia dostęp dla klienta impersonowanego przez wywoływany wątek. (funkcja)

Linki zewnętrzne