Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntifs.template.h
Go to the documentation of this file.
00001 /* 00002 * ntifs.h 00003 * 00004 * Windows NT Filesystem Driver Developer Kit 00005 * 00006 * This file is part of the ReactOS DDK package. 00007 * 00008 * Contributors: 00009 * Amine Khaldi 00010 * Timo Kreuzer (timo.kreuzer@reactos.org) 00011 * 00012 * THIS SOFTWARE IS NOT COPYRIGHTED 00013 * 00014 * This source code is offered for use in the public domain. You may 00015 * use, modify or distribute it freely. 00016 * 00017 * This code is distributed in the hope that it will be useful but 00018 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00019 * DISCLAIMED. This includes but is not limited to warranties of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00021 * 00022 */ 00023 00024 #pragma once 00025 00026 #define _NTIFS_INCLUDED_ 00027 #define _GNU_NTIFS_ 00028 00029 #ifdef __cplusplus 00030 extern "C" { 00031 #endif 00032 00033 /* Dependencies */ 00034 #include <ntddk.h> 00035 #include <excpt.h> 00036 #include <ntdef.h> 00037 #include <ntnls.h> 00038 #include <ntstatus.h> 00039 #include <bugcodes.h> 00040 #include <ntiologc.h> 00041 00042 $define (_NTIFS_) 00043 00044 #ifndef FlagOn 00045 #define FlagOn(_F,_SF) ((_F) & (_SF)) 00046 #endif 00047 00048 #ifndef BooleanFlagOn 00049 #define BooleanFlagOn(F,SF) ((BOOLEAN)(((F) & (SF)) != 0)) 00050 #endif 00051 00052 #ifndef SetFlag 00053 #define SetFlag(_F,_SF) ((_F) |= (_SF)) 00054 #endif 00055 00056 #ifndef ClearFlag 00057 #define ClearFlag(_F,_SF) ((_F) &= ~(_SF)) 00058 #endif 00059 00060 typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; 00061 typedef STRING LSA_STRING, *PLSA_STRING; 00062 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES; 00063 00064 $include (setypes.h) 00065 $include (obtypes.h) 00066 $include (rtltypes.h) 00067 $include (rtlfuncs.h) 00068 00069 _IRQL_requires_max_(PASSIVE_LEVEL) 00070 __kernel_entry 00071 NTSYSCALLAPI 00072 NTSTATUS 00073 NTAPI 00074 NtQueryObject( 00075 _In_opt_ HANDLE Handle, 00076 _In_ OBJECT_INFORMATION_CLASS ObjectInformationClass, 00077 _Out_writes_bytes_opt_(ObjectInformationLength) PVOID ObjectInformation, 00078 _In_ ULONG ObjectInformationLength, 00079 _Out_opt_ PULONG ReturnLength); 00080 00081 #if (NTDDI_VERSION >= NTDDI_WIN2K) 00082 00083 _Must_inspect_result_ 00084 __kernel_entry 00085 NTSYSCALLAPI 00086 NTSTATUS 00087 NTAPI 00088 NtOpenThreadToken( 00089 _In_ HANDLE ThreadHandle, 00090 _In_ ACCESS_MASK DesiredAccess, 00091 _In_ BOOLEAN OpenAsSelf, 00092 _Out_ PHANDLE TokenHandle); 00093 00094 _Must_inspect_result_ 00095 __kernel_entry 00096 NTSYSCALLAPI 00097 NTSTATUS 00098 NTAPI 00099 NtOpenProcessToken( 00100 _In_ HANDLE ProcessHandle, 00101 _In_ ACCESS_MASK DesiredAccess, 00102 _Out_ PHANDLE TokenHandle); 00103 00104 _When_(TokenInformationClass == TokenAccessInformation, 00105 _At_(TokenInformationLength, 00106 _In_range_(>=, sizeof(TOKEN_ACCESS_INFORMATION)))) 00107 _Must_inspect_result_ 00108 __kernel_entry 00109 NTSYSCALLAPI 00110 NTSTATUS 00111 NTAPI 00112 NtQueryInformationToken( 00113 _In_ HANDLE TokenHandle, 00114 _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, 00115 _Out_writes_bytes_to_opt_(TokenInformationLength, *ReturnLength) PVOID TokenInformation, 00116 _In_ ULONG TokenInformationLength, 00117 _Out_ PULONG ReturnLength); 00118 00119 _Must_inspect_result_ 00120 __kernel_entry 00121 NTSYSCALLAPI 00122 NTSTATUS 00123 NTAPI 00124 NtAdjustPrivilegesToken( 00125 _In_ HANDLE TokenHandle, 00126 _In_ BOOLEAN DisableAllPrivileges, 00127 _In_opt_ PTOKEN_PRIVILEGES NewState, 00128 _In_ ULONG BufferLength, 00129 _Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState, 00130 _Out_ _When_(PreviousState == NULL, _Out_opt_) PULONG ReturnLength); 00131 00132 __kernel_entry 00133 NTSYSCALLAPI 00134 NTSTATUS 00135 NTAPI 00136 NtCreateFile( 00137 _Out_ PHANDLE FileHandle, 00138 _In_ ACCESS_MASK DesiredAccess, 00139 _In_ POBJECT_ATTRIBUTES ObjectAttributes, 00140 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00141 _In_opt_ PLARGE_INTEGER AllocationSize, 00142 _In_ ULONG FileAttributes, 00143 _In_ ULONG ShareAccess, 00144 _In_ ULONG CreateDisposition, 00145 _In_ ULONG CreateOptions, 00146 _In_reads_bytes_opt_(EaLength) PVOID EaBuffer, 00147 _In_ ULONG EaLength); 00148 00149 __kernel_entry 00150 NTSYSCALLAPI 00151 NTSTATUS 00152 NTAPI 00153 NtDeviceIoControlFile( 00154 _In_ HANDLE FileHandle, 00155 _In_opt_ HANDLE Event, 00156 _In_opt_ PIO_APC_ROUTINE ApcRoutine, 00157 _In_opt_ PVOID ApcContext, 00158 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00159 _In_ ULONG IoControlCode, 00160 _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, 00161 _In_ ULONG InputBufferLength, 00162 _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, 00163 _In_ ULONG OutputBufferLength); 00164 00165 __kernel_entry 00166 NTSYSCALLAPI 00167 NTSTATUS 00168 NTAPI 00169 NtFsControlFile( 00170 _In_ HANDLE FileHandle, 00171 _In_opt_ HANDLE Event, 00172 _In_opt_ PIO_APC_ROUTINE ApcRoutine, 00173 _In_opt_ PVOID ApcContext, 00174 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00175 _In_ ULONG FsControlCode, 00176 _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, 00177 _In_ ULONG InputBufferLength, 00178 _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, 00179 _In_ ULONG OutputBufferLength); 00180 00181 __kernel_entry 00182 NTSYSCALLAPI 00183 NTSTATUS 00184 NTAPI 00185 NtLockFile( 00186 _In_ HANDLE FileHandle, 00187 _In_opt_ HANDLE Event, 00188 _In_opt_ PIO_APC_ROUTINE ApcRoutine, 00189 _In_opt_ PVOID ApcContext, 00190 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00191 _In_ PLARGE_INTEGER ByteOffset, 00192 _In_ PLARGE_INTEGER Length, 00193 _In_ ULONG Key, 00194 _In_ BOOLEAN FailImmediately, 00195 _In_ BOOLEAN ExclusiveLock); 00196 00197 __kernel_entry 00198 NTSYSCALLAPI 00199 NTSTATUS 00200 NTAPI 00201 NtOpenFile( 00202 _Out_ PHANDLE FileHandle, 00203 _In_ ACCESS_MASK DesiredAccess, 00204 _In_ POBJECT_ATTRIBUTES ObjectAttributes, 00205 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00206 _In_ ULONG ShareAccess, 00207 _In_ ULONG OpenOptions); 00208 00209 __kernel_entry 00210 NTSYSCALLAPI 00211 NTSTATUS 00212 NTAPI 00213 NtQueryDirectoryFile( 00214 _In_ HANDLE FileHandle, 00215 _In_opt_ HANDLE Event, 00216 _In_opt_ PIO_APC_ROUTINE ApcRoutine, 00217 _In_opt_ PVOID ApcContext, 00218 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00219 _Out_writes_bytes_(Length) PVOID FileInformation, 00220 _In_ ULONG Length, 00221 _In_ FILE_INFORMATION_CLASS FileInformationClass, 00222 _In_ BOOLEAN ReturnSingleEntry, 00223 _In_opt_ PUNICODE_STRING FileName, 00224 _In_ BOOLEAN RestartScan); 00225 00226 __kernel_entry 00227 NTSYSCALLAPI 00228 NTSTATUS 00229 NTAPI 00230 NtQueryInformationFile( 00231 _In_ HANDLE FileHandle, 00232 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00233 _Out_writes_bytes_(Length) PVOID FileInformation, 00234 _In_ ULONG Length, 00235 _In_ FILE_INFORMATION_CLASS FileInformationClass); 00236 00237 __kernel_entry 00238 NTSYSCALLAPI 00239 NTSTATUS 00240 NTAPI 00241 NtQueryQuotaInformationFile( 00242 _In_ HANDLE FileHandle, 00243 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00244 _Out_writes_bytes_(Length) PVOID Buffer, 00245 _In_ ULONG Length, 00246 _In_ BOOLEAN ReturnSingleEntry, 00247 _In_reads_bytes_opt_(SidListLength) PVOID SidList, 00248 _In_ ULONG SidListLength, 00249 _In_reads_bytes_opt_((8 + (4 * ((SID *)StartSid)->SubAuthorityCount))) PSID StartSid, 00250 _In_ BOOLEAN RestartScan); 00251 00252 __kernel_entry 00253 NTSYSCALLAPI 00254 NTSTATUS 00255 NTAPI 00256 NtQueryVolumeInformationFile( 00257 _In_ HANDLE FileHandle, 00258 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00259 _Out_writes_bytes_(Length) PVOID FsInformation, 00260 _In_ ULONG Length, 00261 _In_ FS_INFORMATION_CLASS FsInformationClass); 00262 00263 __kernel_entry 00264 NTSYSCALLAPI 00265 NTSTATUS 00266 NTAPI 00267 NtReadFile( 00268 _In_ HANDLE FileHandle, 00269 _In_opt_ HANDLE Event, 00270 _In_opt_ PIO_APC_ROUTINE ApcRoutine, 00271 _In_opt_ PVOID ApcContext, 00272 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00273 _Out_writes_bytes_(Length) PVOID Buffer, 00274 _In_ ULONG Length, 00275 _In_opt_ PLARGE_INTEGER ByteOffset, 00276 _In_opt_ PULONG Key); 00277 00278 __kernel_entry 00279 NTSYSCALLAPI 00280 NTSTATUS 00281 NTAPI 00282 NtSetInformationFile( 00283 _In_ HANDLE FileHandle, 00284 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00285 _In_reads_bytes_(Length) PVOID FileInformation, 00286 _In_ ULONG Length, 00287 _In_ FILE_INFORMATION_CLASS FileInformationClass); 00288 00289 __kernel_entry 00290 NTSYSCALLAPI 00291 NTSTATUS 00292 NTAPI 00293 NtSetQuotaInformationFile( 00294 _In_ HANDLE FileHandle, 00295 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00296 _In_reads_bytes_(Length) PVOID Buffer, 00297 _In_ ULONG Length); 00298 00299 __kernel_entry 00300 NTSYSCALLAPI 00301 NTSTATUS 00302 NTAPI 00303 NtSetVolumeInformationFile( 00304 _In_ HANDLE FileHandle, 00305 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00306 _In_reads_bytes_(Length) PVOID FsInformation, 00307 _In_ ULONG Length, 00308 _In_ FS_INFORMATION_CLASS FsInformationClass); 00309 00310 __kernel_entry 00311 NTSYSCALLAPI 00312 NTSTATUS 00313 NTAPI 00314 NtWriteFile( 00315 _In_ HANDLE FileHandle, 00316 _In_opt_ HANDLE Event, 00317 _In_opt_ PIO_APC_ROUTINE ApcRoutine, 00318 _In_opt_ PVOID ApcContext, 00319 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00320 _In_reads_bytes_(Length) PVOID Buffer, 00321 _In_ ULONG Length, 00322 _In_opt_ PLARGE_INTEGER ByteOffset, 00323 _In_opt_ PULONG Key); 00324 00325 __kernel_entry 00326 NTSYSCALLAPI 00327 NTSTATUS 00328 NTAPI 00329 NtUnlockFile( 00330 _In_ HANDLE FileHandle, 00331 _Out_ PIO_STATUS_BLOCK IoStatusBlock, 00332 _In_ PLARGE_INTEGER ByteOffset, 00333 _In_ PLARGE_INTEGER Length, 00334 _In_ ULONG Key); 00335 00336 _IRQL_requires_max_(PASSIVE_LEVEL) 00337 __kernel_entry 00338 NTSYSCALLAPI 00339 NTSTATUS 00340 NTAPI 00341 NtSetSecurityObject( 00342 _In_ HANDLE Handle, 00343 _In_ SECURITY_INFORMATION SecurityInformation, 00344 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor); 00345 00346 _IRQL_requires_max_(PASSIVE_LEVEL) 00347 __kernel_entry 00348 NTSYSCALLAPI 00349 NTSTATUS 00350 NTAPI 00351 NtQuerySecurityObject( 00352 _In_ HANDLE Handle, 00353 _In_ SECURITY_INFORMATION SecurityInformation, 00354 _Out_writes_bytes_opt_(Length) PSECURITY_DESCRIPTOR SecurityDescriptor, 00355 _In_ ULONG Length, 00356 _Out_ PULONG LengthNeeded); 00357 00358 _IRQL_requires_max_(PASSIVE_LEVEL) 00359 __kernel_entry 00360 NTSYSCALLAPI 00361 NTSTATUS 00362 NTAPI 00363 NtClose( 00364 _In_ HANDLE Handle); 00365 00366 _Must_inspect_result_ 00367 __drv_allocatesMem(Mem) 00368 __kernel_entry 00369 NTSYSCALLAPI 00370 NTSTATUS 00371 NTAPI 00372 NtAllocateVirtualMemory( 00373 _In_ HANDLE ProcessHandle, 00374 _Outptr_result_bytebuffer_(*RegionSize) PVOID *BaseAddress, 00375 _In_ ULONG_PTR ZeroBits, 00376 _Inout_ PSIZE_T RegionSize, 00377 _In_ ULONG AllocationType, 00378 _In_ ULONG Protect); 00379 00380 __kernel_entry 00381 NTSYSCALLAPI 00382 NTSTATUS 00383 NTAPI 00384 NtFreeVirtualMemory( 00385 _In_ HANDLE ProcessHandle, 00386 _Inout_ __drv_freesMem(Mem) PVOID *BaseAddress, 00387 _Inout_ PSIZE_T RegionSize, 00388 _In_ ULONG FreeType); 00389 00390 #endif 00391 00392 #if (NTDDI_VERSION >= NTDDI_WINXP) 00393 00394 _Must_inspect_result_ 00395 __kernel_entry 00396 NTSYSCALLAPI 00397 NTSTATUS 00398 NTAPI 00399 NtOpenThreadTokenEx( 00400 _In_ HANDLE ThreadHandle, 00401 _In_ ACCESS_MASK DesiredAccess, 00402 _In_ BOOLEAN OpenAsSelf, 00403 _In_ ULONG HandleAttributes, 00404 _Out_ PHANDLE TokenHandle); 00405 00406 _Must_inspect_result_ 00407 __kernel_entry 00408 NTSYSCALLAPI 00409 NTSTATUS 00410 NTAPI 00411 NtOpenProcessTokenEx( 00412 _In_ HANDLE ProcessHandle, 00413 _In_ ACCESS_MASK DesiredAccess, 00414 _In_ ULONG HandleAttributes, 00415 _Out_ PHANDLE TokenHandle); 00416 00417 _Must_inspect_result_ 00418 NTSYSAPI 00419 NTSTATUS 00420 NTAPI 00421 NtOpenJobObjectToken( 00422 _In_ HANDLE JobHandle, 00423 _In_ ACCESS_MASK DesiredAccess, 00424 _Out_ PHANDLE TokenHandle); 00425 00426 _Must_inspect_result_ 00427 __kernel_entry 00428 NTSYSCALLAPI 00429 NTSTATUS 00430 NTAPI 00431 NtDuplicateToken( 00432 _In_ HANDLE ExistingTokenHandle, 00433 _In_ ACCESS_MASK DesiredAccess, 00434 _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, 00435 _In_ BOOLEAN EffectiveOnly, 00436 _In_ TOKEN_TYPE TokenType, 00437 _Out_ PHANDLE NewTokenHandle); 00438 00439 _Must_inspect_result_ 00440 __kernel_entry 00441 NTSYSCALLAPI 00442 NTSTATUS 00443 NTAPI 00444 NtFilterToken( 00445 _In_ HANDLE ExistingTokenHandle, 00446 _In_ ULONG Flags, 00447 _In_opt_ PTOKEN_GROUPS SidsToDisable, 00448 _In_opt_ PTOKEN_PRIVILEGES PrivilegesToDelete, 00449 _In_opt_ PTOKEN_GROUPS RestrictedSids, 00450 _Out_ PHANDLE NewTokenHandle); 00451 00452 _Must_inspect_result_ 00453 __kernel_entry 00454 NTSYSCALLAPI 00455 NTSTATUS 00456 NTAPI 00457 NtImpersonateAnonymousToken( 00458 _In_ HANDLE ThreadHandle); 00459 00460 _Must_inspect_result_ 00461 __kernel_entry 00462 NTSYSCALLAPI 00463 NTSTATUS 00464 NTAPI 00465 NtSetInformationToken( 00466 _In_ HANDLE TokenHandle, 00467 _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, 00468 _In_reads_bytes_(TokenInformationLength) PVOID TokenInformation, 00469 _In_ ULONG TokenInformationLength); 00470 00471 _Must_inspect_result_ 00472 __kernel_entry 00473 NTSYSCALLAPI 00474 NTSTATUS 00475 NTAPI 00476 NtAdjustGroupsToken( 00477 _In_ HANDLE TokenHandle, 00478 _In_ BOOLEAN ResetToDefault, 00479 _In_opt_ PTOKEN_GROUPS NewState, 00480 _In_opt_ ULONG BufferLength, 00481 _Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_GROUPS PreviousState, 00482 _Out_ PULONG ReturnLength); 00483 00484 _Must_inspect_result_ 00485 __kernel_entry 00486 NTSYSCALLAPI 00487 NTSTATUS 00488 NTAPI 00489 NtPrivilegeCheck( 00490 _In_ HANDLE ClientToken, 00491 _Inout_ PPRIVILEGE_SET RequiredPrivileges, 00492 _Out_ PBOOLEAN Result); 00493 00494 _Must_inspect_result_ 00495 __kernel_entry 00496 NTSYSCALLAPI 00497 NTSTATUS 00498 NTAPI 00499 NtAccessCheckAndAuditAlarm( 00500 _In_ PUNICODE_STRING SubsystemName, 00501 _In_opt_ PVOID HandleId, 00502 _In_ PUNICODE_STRING ObjectTypeName, 00503 _In_ PUNICODE_STRING ObjectName, 00504 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor, 00505 _In_ ACCESS_MASK DesiredAccess, 00506 _In_ PGENERIC_MAPPING GenericMapping, 00507 _In_ BOOLEAN ObjectCreation, 00508 _Out_ PACCESS_MASK GrantedAccess, 00509 _Out_ PNTSTATUS AccessStatus, 00510 _Out_ PBOOLEAN GenerateOnClose); 00511 00512 _Must_inspect_result_ 00513 __kernel_entry 00514 NTSYSCALLAPI 00515 NTSTATUS 00516 NTAPI 00517 NtAccessCheckByTypeAndAuditAlarm( 00518 _In_ PUNICODE_STRING SubsystemName, 00519 _In_opt_ PVOID HandleId, 00520 _In_ PUNICODE_STRING ObjectTypeName, 00521 _In_ PUNICODE_STRING ObjectName, 00522 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor, 00523 _In_opt_ PSID PrincipalSelfSid, 00524 _In_ ACCESS_MASK DesiredAccess, 00525 _In_ AUDIT_EVENT_TYPE AuditType, 00526 _In_ ULONG Flags, 00527 _In_reads_opt_(ObjectTypeLength) POBJECT_TYPE_LIST ObjectTypeList, 00528 _In_ ULONG ObjectTypeLength, 00529 _In_ PGENERIC_MAPPING GenericMapping, 00530 _In_ BOOLEAN ObjectCreation, 00531 _Out_ PACCESS_MASK GrantedAccess, 00532 _Out_ PNTSTATUS AccessStatus, 00533 _Out_ PBOOLEAN GenerateOnClose); 00534 00535 _Must_inspect_result_ 00536 __kernel_entry 00537 NTSYSCALLAPI 00538 NTSTATUS 00539 NTAPI 00540 NtAccessCheckByTypeResultListAndAuditAlarm( 00541 _In_ PUNICODE_STRING SubsystemName, 00542 _In_opt_ PVOID HandleId, 00543 _In_ PUNICODE_STRING ObjectTypeName, 00544 _In_ PUNICODE_STRING ObjectName, 00545 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor, 00546 _In_opt_ PSID PrincipalSelfSid, 00547 _In_ ACCESS_MASK DesiredAccess, 00548 _In_ AUDIT_EVENT_TYPE AuditType, 00549 _In_ ULONG Flags, 00550 _In_reads_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList, 00551 _In_ ULONG ObjectTypeListLength, 00552 _In_ PGENERIC_MAPPING GenericMapping, 00553 _In_ BOOLEAN ObjectCreation, 00554 _Out_writes_(ObjectTypeListLength) PACCESS_MASK GrantedAccess, 00555 _Out_writes_(ObjectTypeListLength) PNTSTATUS AccessStatus, 00556 _Out_ PBOOLEAN GenerateOnClose); 00557 00558 _Must_inspect_result_ 00559 __kernel_entry 00560 NTSYSCALLAPI 00561 NTSTATUS 00562 NTAPI 00563 NtAccessCheckByTypeResultListAndAuditAlarmByHandle( 00564 _In_ PUNICODE_STRING SubsystemName, 00565 _In_opt_ PVOID HandleId, 00566 _In_ HANDLE ClientToken, 00567 _In_ PUNICODE_STRING ObjectTypeName, 00568 _In_ PUNICODE_STRING ObjectName, 00569 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor, 00570 _In_opt_ PSID PrincipalSelfSid, 00571 _In_ ACCESS_MASK DesiredAccess, 00572 _In_ AUDIT_EVENT_TYPE AuditType, 00573 _In_ ULONG Flags, 00574 _In_reads_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList, 00575 _In_ ULONG ObjectTypeListLength, 00576 _In_ PGENERIC_MAPPING GenericMapping, 00577 _In_ BOOLEAN ObjectCreation, 00578 _Out_writes_(ObjectTypeListLength) PACCESS_MASK GrantedAccess, 00579 _Out_writes_(ObjectTypeListLength) PNTSTATUS AccessStatus, 00580 _Out_ PBOOLEAN GenerateOnClose); 00581 00582 __kernel_entry 00583 NTSYSCALLAPI 00584 NTSTATUS 00585 NTAPI 00586 NtOpenObjectAuditAlarm( 00587 _In_ PUNICODE_STRING SubsystemName, 00588 _In_opt_ PVOID HandleId, 00589 _In_ PUNICODE_STRING ObjectTypeName, 00590 _In_ PUNICODE_STRING ObjectName, 00591 _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor, 00592 _In_ HANDLE ClientToken, 00593 _In_ ACCESS_MASK DesiredAccess, 00594 _In_ ACCESS_MASK GrantedAccess, 00595 _In_opt_ PPRIVILEGE_SET Privileges, 00596 _In_ BOOLEAN ObjectCreation, 00597 _In_ BOOLEAN AccessGranted, 00598 _Out_ PBOOLEAN GenerateOnClose); 00599 00600 __kernel_entry 00601 NTSYSCALLAPI 00602 NTSTATUS 00603 NTAPI 00604 NtPrivilegeObjectAuditAlarm( 00605 _In_ PUNICODE_STRING SubsystemName, 00606 _In_opt_ PVOID HandleId, 00607 _In_ HANDLE ClientToken, 00608 _In_ ACCESS_MASK DesiredAccess, 00609 _In_ PPRIVILEGE_SET Privileges, 00610 _In_ BOOLEAN AccessGranted); 00611 00612 __kernel_entry 00613 NTSYSCALLAPI 00614 NTSTATUS 00615 NTAPI 00616 NtCloseObjectAuditAlarm( 00617 _In_ PUNICODE_STRING SubsystemName, 00618 _In_opt_ PVOID HandleId, 00619 _In_ BOOLEAN GenerateOnClose); 00620 00621 __kernel_entry 00622 NTSYSCALLAPI 00623 NTSTATUS 00624 NTAPI 00625 NtDeleteObjectAuditAlarm( 00626 _In_ PUNICODE_STRING SubsystemName, 00627 _In_opt_ PVOID HandleId, 00628 _In_ BOOLEAN GenerateOnClose); 00629 00630 __kernel_entry 00631 NTSYSCALLAPI 00632 NTSTATUS 00633 NTAPI 00634 NtPrivilegedServiceAuditAlarm( 00635 _In_ PUNICODE_STRING SubsystemName, 00636 _In_ PUNICODE_STRING ServiceName, 00637 _In_ HANDLE ClientToken, 00638 _In_ PPRIVILEGE_SET Privileges, 00639 _In_ BOOLEAN AccessGranted); 00640 00641 __kernel_entry 00642 NTSYSCALLAPI 00643 NTSTATUS 00644 NTAPI 00645 NtSetInformationThread( 00646 _In_ HANDLE ThreadHandle, 00647 _In_ THREADINFOCLASS ThreadInformationClass, 00648 _In_reads_bytes_(ThreadInformationLength) PVOID ThreadInformation, 00649 _In_ ULONG ThreadInformationLength); 00650 00651 _Must_inspect_result_ 00652 __kernel_entry 00653 NTSYSCALLAPI 00654 NTSTATUS 00655 NTAPI 00656 NtCreateSection( 00657 _Out_ PHANDLE SectionHandle, 00658 _In_ ACCESS_MASK DesiredAccess, 00659 _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, 00660 _In_opt_ PLARGE_INTEGER MaximumSize, 00661 _In_ ULONG SectionPageProtection, 00662 _In_ ULONG AllocationAttributes, 00663 _In_opt_ HANDLE FileHandle); 00664 00665 #endif 00666 00667 #define COMPRESSION_FORMAT_NONE (0x0000) 00668 #define COMPRESSION_FORMAT_DEFAULT (0x0001) 00669 #define COMPRESSION_FORMAT_LZNT1 (0x0002) 00670 #define COMPRESSION_ENGINE_STANDARD (0x0000) 00671 #define COMPRESSION_ENGINE_MAXIMUM (0x0100) 00672 #define COMPRESSION_ENGINE_HIBER (0x0200) 00673 00674 #define MAX_UNICODE_STACK_BUFFER_LENGTH 256 00675 00676 #define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3)) 00677 00678 #define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT 00679 #define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT 00680 00681 typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE; 00682 00683 typedef enum _SECURITY_LOGON_TYPE { 00684 UndefinedLogonType = 0, 00685 Interactive = 2, 00686 Network, 00687 Batch, 00688 Service, 00689 Proxy, 00690 Unlock, 00691 NetworkCleartext, 00692 NewCredentials, 00693 #if (_WIN32_WINNT >= 0x0501) 00694 RemoteInteractive, 00695 CachedInteractive, 00696 #endif 00697 #if (_WIN32_WINNT >= 0x0502) 00698 CachedRemoteInteractive, 00699 CachedUnlock 00700 #endif 00701 } SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE; 00702 00703 #ifndef _NTLSA_AUDIT_ 00704 #define _NTLSA_AUDIT_ 00705 00706 #ifndef GUID_DEFINED 00707 #include <guiddef.h> 00708 #endif 00709 00710 #endif /* _NTLSA_AUDIT_ */ 00711 00712 _IRQL_requires_same_ 00713 _IRQL_requires_max_(PASSIVE_LEVEL) 00714 NTSTATUS 00715 NTAPI 00716 LsaRegisterLogonProcess( 00717 _In_ PLSA_STRING LogonProcessName, 00718 _Out_ PHANDLE LsaHandle, 00719 _Out_ PLSA_OPERATIONAL_MODE SecurityMode); 00720 00721 _IRQL_requires_same_ 00722 _IRQL_requires_max_(PASSIVE_LEVEL) 00723 NTSTATUS 00724 NTAPI 00725 LsaLogonUser( 00726 _In_ HANDLE LsaHandle, 00727 _In_ PLSA_STRING OriginName, 00728 _In_ SECURITY_LOGON_TYPE LogonType, 00729 _In_ ULONG AuthenticationPackage, 00730 _In_reads_bytes_(AuthenticationInformationLength) PVOID AuthenticationInformation, 00731 _In_ ULONG AuthenticationInformationLength, 00732 _In_opt_ PTOKEN_GROUPS LocalGroups, 00733 _In_ PTOKEN_SOURCE SourceContext, 00734 _Out_ PVOID *ProfileBuffer, 00735 _Out_ PULONG ProfileBufferLength, 00736 _Inout_ PLUID LogonId, 00737 _Out_ PHANDLE Token, 00738 _Out_ PQUOTA_LIMITS Quotas, 00739 _Out_ PNTSTATUS SubStatus); 00740 00741 _IRQL_requires_same_ 00742 NTSTATUS 00743 NTAPI 00744 LsaFreeReturnBuffer( 00745 _In_ PVOID Buffer); 00746 00747 #ifndef _NTLSA_IFS_ 00748 #define _NTLSA_IFS_ 00749 #endif 00750 00751 #define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0" 00752 #define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0" 00753 #define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW) - sizeof(WCHAR) 00754 00755 #define MSV1_0_SUBAUTHENTICATION_KEY "SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1_0" 00756 #define MSV1_0_SUBAUTHENTICATION_VALUE "Auth" 00757 00758 #define MSV1_0_CHALLENGE_LENGTH 8 00759 #define MSV1_0_USER_SESSION_KEY_LENGTH 16 00760 #define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8 00761 00762 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 0x02 00763 #define MSV1_0_UPDATE_LOGON_STATISTICS 0x04 00764 #define MSV1_0_RETURN_USER_PARAMETERS 0x08 00765 #define MSV1_0_DONT_TRY_GUEST_ACCOUNT 0x10 00766 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 0x20 00767 #define MSV1_0_RETURN_PASSWORD_EXPIRY 0x40 00768 #define MSV1_0_USE_CLIENT_CHALLENGE 0x80 00769 #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 0x100 00770 #define MSV1_0_RETURN_PROFILE_PATH 0x200 00771 #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 0x400 00772 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 0x800 00773 00774 #define MSV1_0_DISABLE_PERSONAL_FALLBACK 0x00001000 00775 #define MSV1_0_ALLOW_FORCE_GUEST 0x00002000 00776 00777 #if (_WIN32_WINNT >= 0x0502) 00778 #define MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED 0x00004000 00779 #define MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY 0x00008000 00780 #endif 00781 00782 #define MSV1_0_SUBAUTHENTICATION_DLL_EX 0x00100000 00783 #define MSV1_0_ALLOW_MSVCHAPV2 0x00010000 00784 00785 #if (_WIN32_WINNT >= 0x0600) 00786 #define MSV1_0_S4U2SELF 0x00020000 00787 #define MSV1_0_CHECK_LOGONHOURS_FOR_S4U 0x00040000 00788 #endif 00789 00790 #define MSV1_0_SUBAUTHENTICATION_DLL 0xFF000000 00791 #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24 00792 #define MSV1_0_MNS_LOGON 0x01000000 00793 00794 #define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2 00795 #define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132 00796 00797 #define LOGON_GUEST 0x01 00798 #define LOGON_NOENCRYPTION 0x02 00799 #define LOGON_CACHED_ACCOUNT 0x04 00800 #define LOGON_USED_LM_PASSWORD 0x08 00801 #define LOGON_EXTRA_SIDS 0x20 00802 #define LOGON_SUBAUTH_SESSION_KEY 0x40 00803 #define LOGON_SERVER_TRUST_ACCOUNT 0x80 00804 #define LOGON_NTLMV2_ENABLED 0x100 00805 #define LOGON_RESOURCE_GROUPS 0x200 00806 #define LOGON_PROFILE_PATH_RETURNED 0x400 00807 #define LOGON_NT_V2 0x800 00808 #define LOGON_LM_V2 0x1000 00809 #define LOGON_NTLM_V2 0x2000 00810 00811 #if (_WIN32_WINNT >= 0x0600) 00812 00813 #define LOGON_OPTIMIZED 0x4000 00814 #define LOGON_WINLOGON 0x8000 00815 #define LOGON_PKINIT 0x10000 00816 #define LOGON_NO_OPTIMIZED 0x20000 00817 00818 #endif 00819 00820 #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xFF000000 00821 00822 #define LOGON_GRACE_LOGON 0x01000000 00823 00824 #define MSV1_0_OWF_PASSWORD_LENGTH 16 00825 #define MSV1_0_CRED_LM_PRESENT 0x1 00826 #define MSV1_0_CRED_NT_PRESENT 0x2 00827 #define MSV1_0_CRED_VERSION 0 00828 00829 #define MSV1_0_NTLM3_RESPONSE_LENGTH 16 00830 #define MSV1_0_NTLM3_OWF_LENGTH 16 00831 00832 #if (_WIN32_WINNT == 0x0500) 00833 #define MSV1_0_MAX_NTLM3_LIFE 1800 00834 #else 00835 #define MSV1_0_MAX_NTLM3_LIFE 129600 00836 #endif 00837 #define MSV1_0_MAX_AVL_SIZE 64000 00838 00839 #if (_WIN32_WINNT >= 0x0501) 00840 00841 #define MSV1_0_AV_FLAG_FORCE_GUEST 0x00000001 00842 00843 #if (_WIN32_WINNT >= 0x0600) 00844 #define MSV1_0_AV_FLAG_MIC_HANDSHAKE_MESSAGES 0x00000002 00845 #endif 00846 00847 #endif 00848 00849 #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE) - MSV1_0_NTLM3_RESPONSE_LENGTH) 00850 00851 #if(_WIN32_WINNT >= 0x0502) 00852 #define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM3_RESPONSE, AvPairsOff) 00853 #endif 00854 00855 #define USE_PRIMARY_PASSWORD 0x01 00856 #define RETURN_PRIMARY_USERNAME 0x02 00857 #define RETURN_PRIMARY_LOGON_DOMAINNAME 0x04 00858 #define RETURN_NON_NT_USER_SESSION_KEY 0x08 00859 #define GENERATE_CLIENT_CHALLENGE 0x10 00860 #define GCR_NTLM3_PARMS 0x20 00861 #define GCR_TARGET_INFO 0x40 00862 #define RETURN_RESERVED_PARAMETER 0x80 00863 #define GCR_ALLOW_NTLM 0x100 00864 #define GCR_USE_OEM_SET 0x200 00865 #define GCR_MACHINE_CREDENTIAL 0x400 00866 #define GCR_USE_OWF_PASSWORD 0x800 00867 #define GCR_ALLOW_LM 0x1000 00868 #define GCR_ALLOW_NO_TARGET 0x2000 00869 00870 typedef enum _MSV1_0_LOGON_SUBMIT_TYPE { 00871 MsV1_0InteractiveLogon = 2, 00872 MsV1_0Lm20Logon, 00873 MsV1_0NetworkLogon, 00874 MsV1_0SubAuthLogon, 00875 MsV1_0WorkstationUnlockLogon = 7, 00876 MsV1_0S4ULogon = 12, 00877 MsV1_0VirtualLogon = 82 00878 } MSV1_0_LOGON_SUBMIT_TYPE, *PMSV1_0_LOGON_SUBMIT_TYPE; 00879 00880 typedef enum _MSV1_0_PROFILE_BUFFER_TYPE { 00881 MsV1_0InteractiveProfile = 2, 00882 MsV1_0Lm20LogonProfile, 00883 MsV1_0SmartCardProfile 00884 } MSV1_0_PROFILE_BUFFER_TYPE, *PMSV1_0_PROFILE_BUFFER_TYPE; 00885 00886 typedef struct _MSV1_0_INTERACTIVE_LOGON { 00887 MSV1_0_LOGON_SUBMIT_TYPE MessageType; 00888 UNICODE_STRING LogonDomainName; 00889 UNICODE_STRING UserName; 00890 UNICODE_STRING Password; 00891 } MSV1_0_INTERACTIVE_LOGON, *PMSV1_0_INTERACTIVE_LOGON; 00892 00893 typedef struct _MSV1_0_INTERACTIVE_PROFILE { 00894 MSV1_0_PROFILE_BUFFER_TYPE MessageType; 00895 USHORT LogonCount; 00896 USHORT BadPasswordCount; 00897 LARGE_INTEGER LogonTime; 00898 LARGE_INTEGER LogoffTime; 00899 LARGE_INTEGER KickOffTime; 00900 LARGE_INTEGER PasswordLastSet; 00901 LARGE_INTEGER PasswordCanChange; 00902 LARGE_INTEGER PasswordMustChange; 00903 UNICODE_STRING LogonScript; 00904 UNICODE_STRING HomeDirectory; 00905 UNICODE_STRING FullName; 00906 UNICODE_STRING ProfilePath; 00907 UNICODE_STRING HomeDirectoryDrive; 00908 UNICODE_STRING LogonServer; 00909 ULONG UserFlags; 00910 } MSV1_0_INTERACTIVE_PROFILE, *PMSV1_0_INTERACTIVE_PROFILE; 00911 00912 typedef struct _MSV1_0_LM20_LOGON { 00913 MSV1_0_LOGON_SUBMIT_TYPE MessageType; 00914 UNICODE_STRING LogonDomainName; 00915 UNICODE_STRING UserName; 00916 UNICODE_STRING Workstation; 00917 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; 00918 STRING CaseSensitiveChallengeResponse; 00919 STRING CaseInsensitiveChallengeResponse; 00920 ULONG ParameterControl; 00921 } MSV1_0_LM20_LOGON, * PMSV1_0_LM20_LOGON; 00922 00923 typedef struct _MSV1_0_SUBAUTH_LOGON { 00924 MSV1_0_LOGON_SUBMIT_TYPE MessageType; 00925 UNICODE_STRING LogonDomainName; 00926 UNICODE_STRING UserName; 00927 UNICODE_STRING Workstation; 00928 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; 00929 STRING AuthenticationInfo1; 00930 STRING AuthenticationInfo2; 00931 ULONG ParameterControl; 00932 ULONG SubAuthPackageId; 00933 } MSV1_0_SUBAUTH_LOGON, * PMSV1_0_SUBAUTH_LOGON; 00934 00935 #if (_WIN32_WINNT >= 0x0600) 00936 00937 #define MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 00938 00939 typedef struct _MSV1_0_S4U_LOGON { 00940 MSV1_0_LOGON_SUBMIT_TYPE MessageType; 00941 ULONG Flags; 00942 UNICODE_STRING UserPrincipalName; 00943 UNICODE_STRING DomainName; 00944 } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; 00945 00946 #endif 00947 00948 typedef struct _MSV1_0_LM20_LOGON_PROFILE { 00949 MSV1_0_PROFILE_BUFFER_TYPE MessageType; 00950 LARGE_INTEGER KickOffTime; 00951 LARGE_INTEGER LogoffTime; 00952 ULONG UserFlags; 00953 UCHAR UserSessionKey[MSV1_0_USER_SESSION_KEY_LENGTH]; 00954 UNICODE_STRING LogonDomainName; 00955 UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH]; 00956 UNICODE_STRING LogonServer; 00957 UNICODE_STRING UserParameters; 00958 } MSV1_0_LM20_LOGON_PROFILE, * PMSV1_0_LM20_LOGON_PROFILE; 00959 00960 typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL { 00961 ULONG Version; 00962 ULONG Flags; 00963 UCHAR LmPassword[MSV1_0_OWF_PASSWORD_LENGTH]; 00964 UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH]; 00965 } MSV1_0_SUPPLEMENTAL_CREDENTIAL, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL; 00966 00967 typedef struct _MSV1_0_NTLM3_RESPONSE { 00968 UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH]; 00969 UCHAR RespType; 00970 UCHAR HiRespType; 00971 USHORT Flags; 00972 ULONG MsgWord; 00973 ULONGLONG TimeStamp; 00974 UCHAR ChallengeFromClient[MSV1_0_CHALLENGE_LENGTH]; 00975 ULONG AvPairsOff; 00976 UCHAR Buffer[1]; 00977 } MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE; 00978 00979 typedef enum _MSV1_0_AVID { 00980 MsvAvEOL, 00981 MsvAvNbComputerName, 00982 MsvAvNbDomainName, 00983 MsvAvDnsComputerName, 00984 MsvAvDnsDomainName, 00985 #if (_WIN32_WINNT >= 0x0501) 00986 MsvAvDnsTreeName, 00987 MsvAvFlags, 00988 #if (_WIN32_WINNT >= 0x0600) 00989 MsvAvTimestamp, 00990 MsvAvRestrictions, 00991 MsvAvTargetName, 00992 MsvAvChannelBindings, 00993 #endif 00994 #endif 00995 } MSV1_0_AVID; 00996 00997 typedef struct _MSV1_0_AV_PAIR { 00998 USHORT AvId; 00999 USHORT AvLen; 01000 } MSV1_0_AV_PAIR, *PMSV1_0_AV_PAIR; 01001 01002 typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE { 01003 MsV1_0Lm20ChallengeRequest = 0, 01004 MsV1_0Lm20GetChallengeResponse, 01005 MsV1_0EnumerateUsers, 01006 MsV1_0GetUserInfo, 01007 MsV1_0ReLogonUsers, 01008 MsV1_0ChangePassword, 01009 MsV1_0ChangeCachedPassword, 01010 MsV1_0GenericPassthrough, 01011 MsV1_0CacheLogon, 01012 MsV1_0SubAuth, 01013 MsV1_0DeriveCredential, 01014 MsV1_0CacheLookup, 01015 #if (_WIN32_WINNT >= 0x0501) 01016 MsV1_0SetProcessOption, 01017 #endif 01018 #if (_WIN32_WINNT >= 0x0600) 01019 MsV1_0ConfigLocalAliases, 01020 MsV1_0ClearCachedCredentials, 01021 #endif 01022 } MSV1_0_PROTOCOL_MESSAGE_TYPE, *PMSV1_0_PROTOCOL_MESSAGE_TYPE; 01023 01024 typedef struct _MSV1_0_LM20_CHALLENGE_REQUEST { 01025 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01026 } MSV1_0_LM20_CHALLENGE_REQUEST, *PMSV1_0_LM20_CHALLENGE_REQUEST; 01027 01028 typedef struct _MSV1_0_LM20_CHALLENGE_RESPONSE { 01029 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01030 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; 01031 } MSV1_0_LM20_CHALLENGE_RESPONSE, *PMSV1_0_LM20_CHALLENGE_RESPONSE; 01032 01033 typedef struct _MSV1_0_GETCHALLENRESP_REQUEST_V1 { 01034 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01035 ULONG ParameterControl; 01036 LUID LogonId; 01037 UNICODE_STRING Password; 01038 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; 01039 } MSV1_0_GETCHALLENRESP_REQUEST_V1, *PMSV1_0_GETCHALLENRESP_REQUEST_V1; 01040 01041 typedef struct _MSV1_0_GETCHALLENRESP_REQUEST { 01042 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01043 ULONG ParameterControl; 01044 LUID LogonId; 01045 UNICODE_STRING Password; 01046 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; 01047 UNICODE_STRING UserName; 01048 UNICODE_STRING LogonDomainName; 01049 UNICODE_STRING ServerName; 01050 } MSV1_0_GETCHALLENRESP_REQUEST, *PMSV1_0_GETCHALLENRESP_REQUEST; 01051 01052 typedef struct _MSV1_0_GETCHALLENRESP_RESPONSE { 01053 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01054 STRING CaseSensitiveChallengeResponse; 01055 STRING CaseInsensitiveChallengeResponse; 01056 UNICODE_STRING UserName; 01057 UNICODE_STRING LogonDomainName; 01058 UCHAR UserSessionKey[MSV1_0_USER_SESSION_KEY_LENGTH]; 01059 UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH]; 01060 } MSV1_0_GETCHALLENRESP_RESPONSE, *PMSV1_0_GETCHALLENRESP_RESPONSE; 01061 01062 typedef struct _MSV1_0_ENUMUSERS_REQUEST { 01063 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01064 } MSV1_0_ENUMUSERS_REQUEST, *PMSV1_0_ENUMUSERS_REQUEST; 01065 01066 typedef struct _MSV1_0_ENUMUSERS_RESPONSE { 01067 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01068 ULONG NumberOfLoggedOnUsers; 01069 PLUID LogonIds; 01070 PULONG EnumHandles; 01071 } MSV1_0_ENUMUSERS_RESPONSE, *PMSV1_0_ENUMUSERS_RESPONSE; 01072 01073 typedef struct _MSV1_0_GETUSERINFO_REQUEST { 01074 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01075 LUID LogonId; 01076 } MSV1_0_GETUSERINFO_REQUEST, *PMSV1_0_GETUSERINFO_REQUEST; 01077 01078 typedef struct _MSV1_0_GETUSERINFO_RESPONSE { 01079 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; 01080 PSID UserSid; 01081 UNICODE_STRING UserName; 01082 UNICODE_STRING LogonDomainName; 01083 UNICODE_STRING LogonServer; 01084 SECURITY_LOGON_TYPE LogonType; 01085 } MSV1_0_GETUSERINFO_RESPONSE, *PMSV1_0_GETUSERINFO_RESPONSE; 01086 01087 $include (iotypes.h) 01088 01089 typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION { 01090 ULONG Attributes; 01091 ACCESS_MASK GrantedAccess; 01092 ULONG HandleCount; 01093 ULONG PointerCount; 01094 ULONG Reserved[10]; 01095 } PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION; 01096 01097 typedef struct _PUBLIC_OBJECT_TYPE_INFORMATION { 01098 UNICODE_STRING TypeName; 01099 ULONG Reserved [22]; 01100 } PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION; 01101 01102 #define SYSTEM_PAGE_PRIORITY_BITS 3 01103 #define SYSTEM_PAGE_PRIORITY_LEVELS (1 << SYSTEM_PAGE_PRIORITY_BITS) 01104 01105 $include (ketypes.h) 01106 $include (kefuncs.h) 01107 $include (extypes.h) 01108 $include (exfuncs.h) 01109 $include (sefuncs.h) 01110 $include (psfuncs.h) 01111 $include (iofuncs.h) 01112 $include (potypes.h) 01113 $include (pofuncs.h) 01114 $include (mmtypes.h) 01115 $include (mmfuncs.h) 01116 $include (obfuncs.h) 01117 $include (fsrtltypes.h) 01118 $include (fsrtlfuncs.h) 01119 $include (cctypes.h) 01120 $include (ccfuncs.h) 01121 $include (zwfuncs.h) 01122 $include (sspi.h) 01123 01124 /* #if !defined(_X86AMD64_) FIXME : WHAT ?! */ 01125 #if defined(_WIN64) 01126 C_ASSERT(sizeof(ERESOURCE) == 0x68); 01127 C_ASSERT(FIELD_OFFSET(ERESOURCE,ActiveCount) == 0x18); 01128 C_ASSERT(FIELD_OFFSET(ERESOURCE,Flag) == 0x1a); 01129 #else 01130 C_ASSERT(sizeof(ERESOURCE) == 0x38); 01131 C_ASSERT(FIELD_OFFSET(ERESOURCE,ActiveCount) == 0x0c); 01132 C_ASSERT(FIELD_OFFSET(ERESOURCE,Flag) == 0x0e); 01133 #endif 01134 /* #endif */ 01135 01136 #if defined(_IA64_) 01137 #if (NTDDI_VERSION >= NTDDI_WIN2K) 01138 //DECLSPEC_DEPRECATED_DDK 01139 NTHALAPI 01140 ULONG 01141 NTAPI 01142 HalGetDmaAlignmentRequirement( 01143 VOID); 01144 #endif 01145 #endif 01146 01147 #if defined(_M_IX86) || defined(_M_AMD64) 01148 #define HalGetDmaAlignmentRequirement() 1L 01149 #endif 01150 01151 extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo; 01152 #define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo 01153 01154 #ifdef NLS_MB_CODE_PAGE_TAG 01155 #undef NLS_MB_CODE_PAGE_TAG 01156 #endif 01157 #define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag 01158 01159 #if (NTDDI_VERSION >= NTDDI_VISTA) 01160 01161 typedef enum _NETWORK_OPEN_LOCATION_QUALIFIER { 01162 NetworkOpenLocationAny, 01163 NetworkOpenLocationRemote, 01164 NetworkOpenLocationLoopback 01165 } NETWORK_OPEN_LOCATION_QUALIFIER; 01166 01167 typedef enum _NETWORK_OPEN_INTEGRITY_QUALIFIER { 01168 NetworkOpenIntegrityAny, 01169 NetworkOpenIntegrityNone, 01170 NetworkOpenIntegritySigned, 01171 NetworkOpenIntegrityEncrypted, 01172 NetworkOpenIntegrityMaximum 01173 } NETWORK_OPEN_INTEGRITY_QUALIFIER; 01174 01175 #if (NTDDI_VERSION >= NTDDI_WIN7) 01176 01177 #define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING 0x1 01178 #define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY 0x2 01179 #define NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK 0x80000000 01180 01181 typedef struct _NETWORK_OPEN_ECP_CONTEXT { 01182 USHORT Size; 01183 USHORT Reserved; 01184 _ANONYMOUS_STRUCT struct { 01185 struct { 01186 NETWORK_OPEN_LOCATION_QUALIFIER Location; 01187 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; 01188 ULONG Flags; 01189 } in; 01190 struct { 01191 NETWORK_OPEN_LOCATION_QUALIFIER Location; 01192 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; 01193 ULONG Flags; 01194 } out; 01195 } DUMMYSTRUCTNAME; 01196 } NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT; 01197 01198 typedef struct _NETWORK_OPEN_ECP_CONTEXT_V0 { 01199 USHORT Size; 01200 USHORT Reserved; 01201 _ANONYMOUS_STRUCT struct { 01202 struct { 01203 NETWORK_OPEN_LOCATION_QUALIFIER Location; 01204 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; 01205 } in; 01206 struct { 01207 NETWORK_OPEN_LOCATION_QUALIFIER Location; 01208 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; 01209 } out; 01210 } DUMMYSTRUCTNAME; 01211 } NETWORK_OPEN_ECP_CONTEXT_V0, *PNETWORK_OPEN_ECP_CONTEXT_V0; 01212 01213 #elif (NTDDI_VERSION >= NTDDI_VISTA) 01214 typedef struct _NETWORK_OPEN_ECP_CONTEXT { 01215 USHORT Size; 01216 USHORT Reserved; 01217 _ANONYMOUS_STRUCT struct { 01218 struct { 01219 NETWORK_OPEN_LOCATION_QUALIFIER Location; 01220 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; 01221 } in; 01222 struct { 01223 NETWORK_OPEN_LOCATION_QUALIFIER Location; 01224 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; 01225 } out; 01226 } DUMMYSTRUCTNAME; 01227 } NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT; 01228 #endif 01229 01230 DEFINE_GUID(GUID_ECP_NETWORK_OPEN_CONTEXT, 0xc584edbf, 0x00df, 0x4d28, 0xb8, 0x84, 0x35, 0xba, 0xca, 0x89, 0x11, 0xe8); 01231 01232 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ 01233 01234 01235 #if (NTDDI_VERSION >= NTDDI_VISTA) 01236 01237 typedef struct _PREFETCH_OPEN_ECP_CONTEXT { 01238 PVOID Context; 01239 } PREFETCH_OPEN_ECP_CONTEXT, *PPREFETCH_OPEN_ECP_CONTEXT; 01240 01241 DEFINE_GUID(GUID_ECP_PREFETCH_OPEN, 0xe1777b21, 0x847e, 0x4837, 0xaa, 0x45, 0x64, 0x16, 0x1d, 0x28, 0x6, 0x55); 01242 01243 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ 01244 01245 #if (NTDDI_VERSION >= NTDDI_WIN7) 01246 01247 DEFINE_GUID (GUID_ECP_NFS_OPEN, 0xf326d30c, 0xe5f8, 0x4fe7, 0xab, 0x74, 0xf5, 0xa3, 0x19, 0x6d, 0x92, 0xdb); 01248 DEFINE_GUID (GUID_ECP_SRV_OPEN, 0xbebfaebc, 0xaabf, 0x489d, 0x9d, 0x2c, 0xe9, 0xe3, 0x61, 0x10, 0x28, 0x53); 01249 01250 typedef struct sockaddr_storage *PSOCKADDR_STORAGE_NFS; 01251 01252 typedef struct _NFS_OPEN_ECP_CONTEXT { 01253 PUNICODE_STRING ExportAlias; 01254 PSOCKADDR_STORAGE_NFS ClientSocketAddress; 01255 } NFS_OPEN_ECP_CONTEXT, *PNFS_OPEN_ECP_CONTEXT, **PPNFS_OPEN_ECP_CONTEXT; 01256 01257 typedef struct _SRV_OPEN_ECP_CONTEXT { 01258 PUNICODE_STRING ShareName; 01259 PSOCKADDR_STORAGE_NFS SocketAddress; 01260 BOOLEAN OplockBlockState; 01261 BOOLEAN OplockAppState; 01262 BOOLEAN OplockFinalState; 01263 } SRV_OPEN_ECP_CONTEXT, *PSRV_OPEN_ECP_CONTEXT; 01264 01265 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ 01266 01267 #define PIN_WAIT (1) 01268 #define PIN_EXCLUSIVE (2) 01269 #define PIN_NO_READ (4) 01270 #define PIN_IF_BCB (8) 01271 #define PIN_CALLER_TRACKS_DIRTY_DATA (32) 01272 #define PIN_HIGH_PRIORITY (64) 01273 01274 #define MAP_WAIT 1 01275 #define MAP_NO_READ (16) 01276 #define MAP_HIGH_PRIORITY (64) 01277 01278 #define IOCTL_REDIR_QUERY_PATH CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS) 01279 #define IOCTL_REDIR_QUERY_PATH_EX CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 100, METHOD_NEITHER, FILE_ANY_ACCESS) 01280 01281 typedef struct _QUERY_PATH_REQUEST { 01282 ULONG PathNameLength; 01283 PIO_SECURITY_CONTEXT SecurityContext; 01284 WCHAR FilePathName[1]; 01285 } QUERY_PATH_REQUEST, *PQUERY_PATH_REQUEST; 01286 01287 typedef struct _QUERY_PATH_REQUEST_EX { 01288 PIO_SECURITY_CONTEXT pSecurityContext; 01289 ULONG EaLength; 01290 PVOID pEaBuffer; 01291 UNICODE_STRING PathName; 01292 UNICODE_STRING DomainServiceName; 01293 ULONG_PTR Reserved[ 3 ]; 01294 } QUERY_PATH_REQUEST_EX, *PQUERY_PATH_REQUEST_EX; 01295 01296 typedef struct _QUERY_PATH_RESPONSE { 01297 ULONG LengthAccepted; 01298 } QUERY_PATH_RESPONSE, *PQUERY_PATH_RESPONSE; 01299 01300 #define VOLSNAPCONTROLTYPE 0x00000053 01301 #define IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES CTL_CODE(VOLSNAPCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 01302 01303 /* FIXME : These definitions below don't belong here (or anywhere in ddk really) */ 01304 #pragma pack(push,4) 01305 01306 #ifndef VER_PRODUCTBUILD 01307 #define VER_PRODUCTBUILD 10000 01308 #endif 01309 01310 #include "csq.h" 01311 01312 #define FS_LFN_APIS 0x00004000 01313 01314 #define FILE_STORAGE_TYPE_SPECIFIED 0x00000041 /* FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE */ 01315 #define FILE_STORAGE_TYPE_DEFAULT (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT) 01316 #define FILE_STORAGE_TYPE_DIRECTORY (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT) 01317 #define FILE_STORAGE_TYPE_FILE (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT) 01318 #define FILE_STORAGE_TYPE_DOCFILE (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT) 01319 #define FILE_STORAGE_TYPE_JUNCTION_POINT (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT) 01320 #define FILE_STORAGE_TYPE_CATALOG (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT) 01321 #define FILE_STORAGE_TYPE_STRUCTURED_STORAGE (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT) 01322 #define FILE_STORAGE_TYPE_EMBEDDING (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT) 01323 #define FILE_STORAGE_TYPE_STREAM (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT) 01324 #define FILE_MINIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_DEFAULT 01325 #define FILE_MAXIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_STREAM 01326 #define FILE_STORAGE_TYPE_MASK 0x000f0000 01327 #define FILE_STORAGE_TYPE_SHIFT 16 01328 01329 #define FILE_VC_QUOTAS_LOG_VIOLATIONS 0x00000004 01330 01331 #ifdef _X86_ 01332 #define HARDWARE_PTE HARDWARE_PTE_X86 01333 #define PHARDWARE_PTE PHARDWARE_PTE_X86 01334 #endif 01335 01336 #define IO_ATTACH_DEVICE_API 0x80000000 01337 01338 #define IO_TYPE_APC 18 01339 #define IO_TYPE_DPC 19 01340 #define IO_TYPE_DEVICE_QUEUE 20 01341 #define IO_TYPE_EVENT_PAIR 21 01342 #define IO_TYPE_INTERRUPT 22 01343 #define IO_TYPE_PROFILE 23 01344 01345 #define IRP_BEING_VERIFIED 0x10 01346 01347 #define MAILSLOT_CLASS_FIRSTCLASS 1 01348 #define MAILSLOT_CLASS_SECONDCLASS 2 01349 01350 #define MAILSLOT_SIZE_AUTO 0 01351 01352 #define MEM_DOS_LIM 0x40000000 01353 01354 #define OB_TYPE_TYPE 1 01355 #define OB_TYPE_DIRECTORY 2 01356 #define OB_TYPE_SYMBOLIC_LINK 3 01357 #define OB_TYPE_TOKEN 4 01358 #define OB_TYPE_PROCESS 5 01359 #define OB_TYPE_THREAD 6 01360 #define OB_TYPE_EVENT 7 01361 #define OB_TYPE_EVENT_PAIR 8 01362 #define OB_TYPE_MUTANT 9 01363 #define OB_TYPE_SEMAPHORE 10 01364 #define OB_TYPE_TIMER 11 01365 #define OB_TYPE_PROFILE 12 01366 #define OB_TYPE_WINDOW_STATION 13 01367 #define OB_TYPE_DESKTOP 14 01368 #define OB_TYPE_SECTION 15 01369 #define OB_TYPE_KEY 16 01370 #define OB_TYPE_PORT 17 01371 #define OB_TYPE_ADAPTER 18 01372 #define OB_TYPE_CONTROLLER 19 01373 #define OB_TYPE_DEVICE 20 01374 #define OB_TYPE_DRIVER 21 01375 #define OB_TYPE_IO_COMPLETION 22 01376 #define OB_TYPE_FILE 23 01377 01378 #define SEC_BASED 0x00200000 01379 01380 /* end winnt.h */ 01381 01382 #define TOKEN_HAS_ADMIN_GROUP 0x08 01383 01384 #if (VER_PRODUCTBUILD >= 1381) 01385 #define FSCTL_GET_HFS_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS) 01386 #endif /* (VER_PRODUCTBUILD >= 1381) */ 01387 01388 #if (VER_PRODUCTBUILD >= 2195) 01389 01390 #define FSCTL_READ_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS) 01391 #define FSCTL_WRITE_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS) 01392 01393 #define FSCTL_DUMP_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS) 01394 01395 #define FSCTL_HSM_MSG CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) 01396 #define FSCTL_NSS_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 67, METHOD_BUFFERED, FILE_WRITE_DATA) 01397 #define FSCTL_HSM_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) 01398 #define FSCTL_NSS_RCONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 70, METHOD_BUFFERED, FILE_READ_DATA) 01399 #endif /* (VER_PRODUCTBUILD >= 2195) */ 01400 01401 #define FSCTL_NETWORK_SET_CONFIGURATION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 102, METHOD_IN_DIRECT, FILE_ANY_ACCESS) 01402 #define FSCTL_NETWORK_GET_CONFIGURATION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 103, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) 01403 #define FSCTL_NETWORK_GET_CONNECTION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 104, METHOD_NEITHER, FILE_ANY_ACCESS) 01404 #define FSCTL_NETWORK_ENUMERATE_CONNECTIONS CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 105, METHOD_NEITHER, FILE_ANY_ACCESS) 01405 #define FSCTL_NETWORK_DELETE_CONNECTION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 107, METHOD_BUFFERED, FILE_ANY_ACCESS) 01406 #define FSCTL_NETWORK_GET_STATISTICS CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 116, METHOD_BUFFERED, FILE_ANY_ACCESS) 01407 #define FSCTL_NETWORK_SET_DOMAIN_NAME CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_ANY_ACCESS) 01408 #define FSCTL_NETWORK_REMOTE_BOOT_INIT_SCRT CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_ANY_ACCESS) 01409 01410 typedef enum _FILE_STORAGE_TYPE { 01411 StorageTypeDefault = 1, 01412 StorageTypeDirectory, 01413 StorageTypeFile, 01414 StorageTypeJunctionPoint, 01415 StorageTypeCatalog, 01416 StorageTypeStructuredStorage, 01417 StorageTypeEmbedding, 01418 StorageTypeStream 01419 } FILE_STORAGE_TYPE; 01420 01421 typedef struct _OBJECT_BASIC_INFORMATION 01422 { 01423 ULONG Attributes; 01424 ACCESS_MASK GrantedAccess; 01425 ULONG HandleCount; 01426 ULONG PointerCount; 01427 ULONG PagedPoolCharge; 01428 ULONG NonPagedPoolCharge; 01429 ULONG Reserved[ 3 ]; 01430 ULONG NameInfoSize; 01431 ULONG TypeInfoSize; 01432 ULONG SecurityDescriptorSize; 01433 LARGE_INTEGER CreationTime; 01434 } OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION; 01435 01436 typedef struct _BITMAP_RANGE { 01437 LIST_ENTRY Links; 01438 LONGLONG BasePage; 01439 ULONG FirstDirtyPage; 01440 ULONG LastDirtyPage; 01441 ULONG DirtyPages; 01442 PULONG Bitmap; 01443 } BITMAP_RANGE, *PBITMAP_RANGE; 01444 01445 typedef struct _FILE_COPY_ON_WRITE_INFORMATION { 01446 BOOLEAN ReplaceIfExists; 01447 HANDLE RootDirectory; 01448 ULONG FileNameLength; 01449 WCHAR FileName[1]; 01450 } FILE_COPY_ON_WRITE_INFORMATION, *PFILE_COPY_ON_WRITE_INFORMATION; 01451 01452 typedef struct _FILE_FULL_DIRECTORY_INFORMATION { 01453 ULONG NextEntryOffset; 01454 ULONG FileIndex; 01455 LARGE_INTEGER CreationTime; 01456 LARGE_INTEGER LastAccessTime; 01457 LARGE_INTEGER LastWriteTime; 01458 LARGE_INTEGER ChangeTime; 01459 LARGE_INTEGER EndOfFile; 01460 LARGE_INTEGER AllocationSize; 01461 ULONG FileAttributes; 01462 ULONG FileNameLength; 01463 ULONG EaSize; 01464 WCHAR FileName[ANYSIZE_ARRAY]; 01465 } FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION; 01466 01467 /* raw internal file lock struct returned from FsRtlGetNextFileLock */ 01468 typedef struct _FILE_SHARED_LOCK_ENTRY { 01469 PVOID Unknown1; 01470 PVOID Unknown2; 01471 FILE_LOCK_INFO FileLock; 01472 } FILE_SHARED_LOCK_ENTRY, *PFILE_SHARED_LOCK_ENTRY; 01473 01474 /* raw internal file lock struct returned from FsRtlGetNextFileLock */ 01475 typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY { 01476 LIST_ENTRY ListEntry; 01477 PVOID Unknown1; 01478 PVOID Unknown2; 01479 FILE_LOCK_INFO FileLock; 01480 } FILE_EXCLUSIVE_LOCK_ENTRY, *PFILE_EXCLUSIVE_LOCK_ENTRY; 01481 01482 typedef struct _FILE_MAILSLOT_PEEK_BUFFER { 01483 ULONG ReadDataAvailable; 01484 ULONG NumberOfMessages; 01485 ULONG MessageLength; 01486 } FILE_MAILSLOT_PEEK_BUFFER, *PFILE_MAILSLOT_PEEK_BUFFER; 01487 01488 typedef struct _FILE_OLE_CLASSID_INFORMATION { 01489 GUID ClassId; 01490 } FILE_OLE_CLASSID_INFORMATION, *PFILE_OLE_CLASSID_INFORMATION; 01491 01492 typedef struct _FILE_OLE_ALL_INFORMATION { 01493 FILE_BASIC_INFORMATION BasicInformation; 01494 FILE_STANDARD_INFORMATION StandardInformation; 01495 FILE_INTERNAL_INFORMATION InternalInformation; 01496 FILE_EA_INFORMATION EaInformation; 01497 FILE_ACCESS_INFORMATION AccessInformation; 01498 FILE_POSITION_INFORMATION PositionInformation; 01499 FILE_MODE_INFORMATION ModeInformation; 01500 FILE_ALIGNMENT_INFORMATION AlignmentInformation; 01501 USN LastChangeUsn; 01502 USN ReplicationUsn; 01503 LARGE_INTEGER SecurityChangeTime; 01504 FILE_OLE_CLASSID_INFORMATION OleClassIdInformation; 01505 FILE_OBJECTID_INFORMATION ObjectIdInformation; 01506 FILE_STORAGE_TYPE StorageType; 01507 ULONG OleStateBits; 01508 ULONG OleId; 01509 ULONG NumberOfStreamReferences; 01510 ULONG StreamIndex; 01511 ULONG SecurityId; 01512 BOOLEAN ContentIndexDisable; 01513 BOOLEAN InheritContentIndexDisable; 01514 FILE_NAME_INFORMATION NameInformation; 01515 } FILE_OLE_ALL_INFORMATION, *PFILE_OLE_ALL_INFORMATION; 01516 01517 typedef struct _FILE_OLE_DIR_INFORMATION { 01518 ULONG NextEntryOffset; 01519 ULONG FileIndex; 01520 LARGE_INTEGER CreationTime; 01521 LARGE_INTEGER LastAccessTime; 01522 LARGE_INTEGER LastWriteTime; 01523 LARGE_INTEGER ChangeTime; 01524 LARGE_INTEGER EndOfFile; 01525 LARGE_INTEGER AllocationSize; 01526 ULONG FileAttributes; 01527 ULONG FileNameLength; 01528 FILE_STORAGE_TYPE StorageType; 01529 GUID OleClassId; 01530 ULONG OleStateBits; 01531 BOOLEAN ContentIndexDisable; 01532 BOOLEAN InheritContentIndexDisable; 01533 WCHAR FileName[1]; 01534 } FILE_OLE_DIR_INFORMATION, *PFILE_OLE_DIR_INFORMATION; 01535 01536 typedef struct _FILE_OLE_INFORMATION { 01537 LARGE_INTEGER SecurityChangeTime; 01538 FILE_OLE_CLASSID_INFORMATION OleClassIdInformation; 01539 FILE_OBJECTID_INFORMATION ObjectIdInformation; 01540 FILE_STORAGE_TYPE StorageType; 01541 ULONG OleStateBits; 01542 BOOLEAN ContentIndexDisable; 01543 BOOLEAN InheritContentIndexDisable; 01544 } FILE_OLE_INFORMATION, *PFILE_OLE_INFORMATION; 01545 01546 typedef struct _FILE_OLE_STATE_BITS_INFORMATION { 01547 ULONG StateBits; 01548 ULONG StateBitsMask; 01549 } FILE_OLE_STATE_BITS_INFORMATION, *PFILE_OLE_STATE_BITS_INFORMATION; 01550 01551 typedef struct _MAPPING_PAIR { 01552 ULONGLONG Vcn; 01553 ULONGLONG Lcn; 01554 } MAPPING_PAIR, *PMAPPING_PAIR; 01555 01556 typedef struct _GET_RETRIEVAL_DESCRIPTOR { 01557 ULONG NumberOfPairs; 01558 ULONGLONG StartVcn; 01559 MAPPING_PAIR Pair[1]; 01560 } GET_RETRIEVAL_DESCRIPTOR, *PGET_RETRIEVAL_DESCRIPTOR; 01561 01562 typedef struct _MBCB { 01563 CSHORT NodeTypeCode; 01564 CSHORT NodeIsInZone; 01565 ULONG PagesToWrite; 01566 ULONG DirtyPages; 01567 ULONG Reserved; 01568 LIST_ENTRY BitmapRanges; 01569 LONGLONG ResumeWritePage; 01570 BITMAP_RANGE BitmapRange1; 01571 BITMAP_RANGE BitmapRange2; 01572 BITMAP_RANGE BitmapRange3; 01573 } MBCB, *PMBCB; 01574 01575 typedef struct _MOVEFILE_DESCRIPTOR { 01576 HANDLE FileHandle; 01577 ULONG Reserved; 01578 LARGE_INTEGER StartVcn; 01579 LARGE_INTEGER TargetLcn; 01580 ULONG NumVcns; 01581 ULONG Reserved1; 01582 } MOVEFILE_DESCRIPTOR, *PMOVEFILE_DESCRIPTOR; 01583 01584 typedef struct _OBJECT_BASIC_INFO { 01585 ULONG Attributes; 01586 ACCESS_MASK GrantedAccess; 01587 ULONG HandleCount; 01588 ULONG ReferenceCount; 01589 ULONG PagedPoolUsage; 01590 ULONG NonPagedPoolUsage; 01591 ULONG Reserved[3]; 01592 ULONG NameInformationLength; 01593 ULONG TypeInformationLength; 01594 ULONG SecurityDescriptorLength; 01595 LARGE_INTEGER CreateTime; 01596 } OBJECT_BASIC_INFO, *POBJECT_BASIC_INFO; 01597 01598 typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFO { 01599 BOOLEAN Inherit; 01600 BOOLEAN ProtectFromClose; 01601 } OBJECT_HANDLE_ATTRIBUTE_INFO, *POBJECT_HANDLE_ATTRIBUTE_INFO; 01602 01603 typedef struct _OBJECT_NAME_INFO { 01604 UNICODE_STRING ObjectName; 01605 WCHAR ObjectNameBuffer[1]; 01606 } OBJECT_NAME_INFO, *POBJECT_NAME_INFO; 01607 01608 typedef struct _OBJECT_PROTECTION_INFO { 01609 BOOLEAN Inherit; 01610 BOOLEAN ProtectHandle; 01611 } OBJECT_PROTECTION_INFO, *POBJECT_PROTECTION_INFO; 01612 01613 typedef struct _OBJECT_TYPE_INFO { 01614 UNICODE_STRING ObjectTypeName; 01615 UCHAR Unknown[0x58]; 01616 WCHAR ObjectTypeNameBuffer[1]; 01617 } OBJECT_TYPE_INFO, *POBJECT_TYPE_INFO; 01618 01619 typedef struct _OBJECT_ALL_TYPES_INFO { 01620 ULONG NumberOfObjectTypes; 01621 OBJECT_TYPE_INFO ObjectsTypeInfo[1]; 01622 } OBJECT_ALL_TYPES_INFO, *POBJECT_ALL_TYPES_INFO; 01623 01624 #if defined(USE_LPC6432) 01625 #define LPC_CLIENT_ID CLIENT_ID64 01626 #define LPC_SIZE_T ULONGLONG 01627 #define LPC_PVOID ULONGLONG 01628 #define LPC_HANDLE ULONGLONG 01629 #else 01630 #define LPC_CLIENT_ID CLIENT_ID 01631 #define LPC_SIZE_T SIZE_T 01632 #define LPC_PVOID PVOID 01633 #define LPC_HANDLE HANDLE 01634 #endif 01635 01636 typedef struct _PORT_MESSAGE 01637 { 01638 union 01639 { 01640 struct 01641 { 01642 CSHORT DataLength; 01643 CSHORT TotalLength; 01644 } s1; 01645 ULONG Length; 01646 } u1; 01647 union 01648 { 01649 struct 01650 { 01651 CSHORT Type; 01652 CSHORT DataInfoOffset; 01653 } s2; 01654 ULONG ZeroInit; 01655 } u2; 01656 __GNU_EXTENSION union 01657 { 01658 LPC_CLIENT_ID ClientId; 01659 double DoNotUseThisField; 01660 }; 01661 ULONG MessageId; 01662 __GNU_EXTENSION union 01663 { 01664 LPC_SIZE_T ClientViewSize; 01665 ULONG CallbackId; 01666 }; 01667 } PORT_MESSAGE, *PPORT_MESSAGE; 01668 01669 #define LPC_KERNELMODE_MESSAGE (CSHORT)((USHORT)0x8000) 01670 01671 typedef struct _PORT_VIEW 01672 { 01673 ULONG Length; 01674 LPC_HANDLE SectionHandle; 01675 ULONG SectionOffset; 01676 LPC_SIZE_T ViewSize; 01677 LPC_PVOID ViewBase; 01678 LPC_PVOID ViewRemoteBase; 01679 } PORT_VIEW, *PPORT_VIEW; 01680 01681 typedef struct _REMOTE_PORT_VIEW 01682 { 01683 ULONG Length; 01684 LPC_SIZE_T ViewSize; 01685 LPC_PVOID ViewBase; 01686 } REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW; 01687 01688 typedef struct _VAD_HEADER { 01689 PVOID StartVPN; 01690 PVOID EndVPN; 01691 struct _VAD_HEADER* ParentLink; 01692 struct _VAD_HEADER* LeftLink; 01693 struct _VAD_HEADER* RightLink; 01694 ULONG Flags; /* LSB = CommitCharge */ 01695 PVOID ControlArea; 01696 PVOID FirstProtoPte; 01697 PVOID LastPTE; 01698 ULONG Unknown; 01699 LIST_ENTRY Secured; 01700 } VAD_HEADER, *PVAD_HEADER; 01701 01702 NTKERNELAPI 01703 LARGE_INTEGER 01704 NTAPI 01705 CcGetLsnForFileObject ( 01706 IN PFILE_OBJECT FileObject, 01707 OUT PLARGE_INTEGER OldestLsn OPTIONAL 01708 ); 01709 01710 NTKERNELAPI 01711 PVOID 01712 NTAPI 01713 FsRtlAllocatePool ( 01714 IN POOL_TYPE PoolType, 01715 IN ULONG NumberOfBytes 01716 ); 01717 01718 NTKERNELAPI 01719 PVOID 01720 NTAPI 01721 FsRtlAllocatePoolWithQuota ( 01722 IN POOL_TYPE PoolType, 01723 IN ULONG NumberOfBytes 01724 ); 01725 01726 NTKERNELAPI 01727 PVOID 01728 NTAPI 01729 FsRtlAllocatePoolWithQuotaTag ( 01730 IN POOL_TYPE PoolType, 01731 IN ULONG NumberOfBytes, 01732 IN ULONG Tag 01733 ); 01734 01735 NTKERNELAPI 01736 PVOID 01737 NTAPI 01738 FsRtlAllocatePoolWithTag ( 01739 IN POOL_TYPE PoolType, 01740 IN ULONG NumberOfBytes, 01741 IN ULONG Tag 01742 ); 01743 01744 NTKERNELAPI 01745 BOOLEAN 01746 NTAPI 01747 FsRtlMdlReadComplete ( 01748 IN PFILE_OBJECT FileObject, 01749 IN PMDL MdlChain 01750 ); 01751 01752 NTKERNELAPI 01753 BOOLEAN 01754 NTAPI 01755 FsRtlMdlWriteComplete ( 01756 IN PFILE_OBJECT FileObject, 01757 IN PLARGE_INTEGER FileOffset, 01758 IN PMDL MdlChain 01759 ); 01760 01761 NTKERNELAPI 01762 VOID 01763 NTAPI 01764 FsRtlNotifyChangeDirectory ( 01765 IN PNOTIFY_SYNC NotifySync, 01766 IN PVOID FsContext, 01767 IN PSTRING FullDirectoryName, 01768 IN PLIST_ENTRY NotifyList, 01769 IN BOOLEAN WatchTree, 01770 IN ULONG CompletionFilter, 01771 IN PIRP NotifyIrp 01772 ); 01773 01774 NTKERNELAPI 01775 NTSTATUS 01776 NTAPI 01777 ObCreateObject ( 01778 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL, 01779 IN POBJECT_TYPE ObjectType, 01780 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, 01781 IN KPROCESSOR_MODE AccessMode, 01782 IN OUT PVOID ParseContext OPTIONAL, 01783 IN ULONG ObjectSize, 01784 IN ULONG PagedPoolCharge OPTIONAL, 01785 IN ULONG NonPagedPoolCharge OPTIONAL, 01786 OUT PVOID *Object 01787 ); 01788 01789 NTKERNELAPI 01790 ULONG 01791 NTAPI 01792 ObGetObjectPointerCount ( 01793 IN PVOID Object 01794 ); 01795 01796 NTKERNELAPI 01797 NTSTATUS 01798 NTAPI 01799 ObReferenceObjectByName ( 01800 IN PUNICODE_STRING ObjectName, 01801 IN ULONG Attributes, 01802 IN PACCESS_STATE PassedAccessState OPTIONAL, 01803 IN ACCESS_MASK DesiredAccess OPTIONAL, 01804 IN POBJECT_TYPE ObjectType, 01805 IN KPROCESSOR_MODE AccessMode, 01806 IN OUT PVOID ParseContext OPTIONAL, 01807 OUT PVOID *Object 01808 ); 01809 01810 #define PsDereferenceImpersonationToken(T) \ 01811 {if (ARGUMENT_PRESENT(T)) { \ 01812 (ObDereferenceObject((T))); \ 01813 } else { \ 01814 ; \ 01815 } \ 01816 } 01817 01818 NTKERNELAPI 01819 NTSTATUS 01820 NTAPI 01821 PsLookupProcessThreadByCid ( 01822 IN PCLIENT_ID Cid, 01823 OUT PEPROCESS *Process OPTIONAL, 01824 OUT PETHREAD *Thread 01825 ); 01826 01827 NTSYSAPI 01828 NTSTATUS 01829 NTAPI 01830 RtlSetSaclSecurityDescriptor ( 01831 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, 01832 IN BOOLEAN SaclPresent, 01833 IN PACL Sacl, 01834 IN BOOLEAN SaclDefaulted 01835 ); 01836 01837 #define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports; 01838 01839 #if (VER_PRODUCTBUILD >= 2195) 01840 01841 NTSYSAPI 01842 NTSTATUS 01843 NTAPI 01844 ZwAdjustPrivilegesToken ( 01845 IN HANDLE TokenHandle, 01846 IN BOOLEAN DisableAllPrivileges, 01847 IN PTOKEN_PRIVILEGES NewState, 01848 IN ULONG BufferLength, 01849 OUT PTOKEN_PRIVILEGES PreviousState OPTIONAL, 01850 OUT PULONG ReturnLength 01851 ); 01852 01853 #endif /* (VER_PRODUCTBUILD >= 2195) */ 01854 01855 NTSYSAPI 01856 NTSTATUS 01857 NTAPI 01858 ZwAlertThread ( 01859 IN HANDLE ThreadHandle 01860 ); 01861 01862 NTSYSAPI 01863 NTSTATUS 01864 NTAPI 01865 ZwAccessCheckAndAuditAlarm ( 01866 IN PUNICODE_STRING SubsystemName, 01867 IN PVOID HandleId, 01868 IN PUNICODE_STRING ObjectTypeName, 01869 IN PUNICODE_STRING ObjectName, 01870 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 01871 IN ACCESS_MASK DesiredAccess, 01872 IN PGENERIC_MAPPING GenericMapping, 01873 IN BOOLEAN ObjectCreation, 01874 OUT PACCESS_MASK GrantedAccess, 01875 OUT PBOOLEAN AccessStatus, 01876 OUT PBOOLEAN GenerateOnClose 01877 ); 01878 01879 #if (VER_PRODUCTBUILD >= 2195) 01880 01881 NTSYSAPI 01882 NTSTATUS 01883 NTAPI 01884 ZwCancelIoFile ( 01885 IN HANDLE FileHandle, 01886 OUT PIO_STATUS_BLOCK IoStatusBlock 01887 ); 01888 01889 #endif /* (VER_PRODUCTBUILD >= 2195) */ 01890 01891 NTSYSAPI 01892 NTSTATUS 01893 NTAPI 01894 ZwClearEvent ( 01895 IN HANDLE EventHandle 01896 ); 01897 01898 NTSYSAPI 01899 NTSTATUS 01900 NTAPI 01901 ZwCloseObjectAuditAlarm ( 01902 IN PUNICODE_STRING SubsystemName, 01903 IN PVOID HandleId, 01904 IN BOOLEAN GenerateOnClose 01905 ); 01906 01907 NTSYSAPI 01908 NTSTATUS 01909 NTAPI 01910 ZwCreateSymbolicLinkObject ( 01911 OUT PHANDLE SymbolicLinkHandle, 01912 IN ACCESS_MASK DesiredAccess, 01913 IN POBJECT_ATTRIBUTES ObjectAttributes, 01914 IN PUNICODE_STRING TargetName 01915 ); 01916 01917 NTSYSAPI 01918 NTSTATUS 01919 NTAPI 01920 ZwFlushInstructionCache ( 01921 IN HANDLE ProcessHandle, 01922 IN PVOID BaseAddress OPTIONAL, 01923 IN ULONG FlushSize 01924 ); 01925 01926 NTSYSAPI 01927 NTSTATUS 01928 NTAPI 01929 ZwFlushBuffersFile( 01930 IN HANDLE FileHandle, 01931 OUT PIO_STATUS_BLOCK IoStatusBlock 01932 ); 01933 01934 #if (VER_PRODUCTBUILD >= 2195) 01935 01936 NTSYSAPI 01937 NTSTATUS 01938 NTAPI 01939 ZwInitiatePowerAction ( 01940 IN POWER_ACTION SystemAction, 01941 IN SYSTEM_POWER_STATE MinSystemState, 01942 IN ULONG Flags, 01943 IN BOOLEAN Asynchronous 01944 ); 01945 01946 #endif /* (VER_PRODUCTBUILD >= 2195) */ 01947 01948 NTSYSAPI 01949 NTSTATUS 01950 NTAPI 01951 ZwLoadKey ( 01952 IN POBJECT_ATTRIBUTES KeyObjectAttributes, 01953 IN POBJECT_ATTRIBUTES FileObjectAttributes 01954 ); 01955 01956 NTSYSAPI 01957 NTSTATUS 01958 NTAPI 01959 ZwOpenProcessToken ( 01960 IN HANDLE ProcessHandle, 01961 IN ACCESS_MASK DesiredAccess, 01962 OUT PHANDLE TokenHandle 01963 ); 01964 01965 NTSYSAPI 01966 NTSTATUS 01967 NTAPI 01968 ZwOpenThread ( 01969 OUT PHANDLE ThreadHandle, 01970 IN ACCESS_MASK DesiredAccess, 01971 IN POBJECT_ATTRIBUTES ObjectAttributes, 01972 IN PCLIENT_ID ClientId 01973 ); 01974 01975 NTSYSAPI 01976 NTSTATUS 01977 NTAPI 01978 ZwOpenThreadToken ( 01979 IN HANDLE ThreadHandle, 01980 IN ACCESS_MASK DesiredAccess, 01981 IN BOOLEAN OpenAsSelf, 01982 OUT PHANDLE TokenHandle 01983 ); 01984 01985 NTSYSAPI 01986 NTSTATUS 01987 NTAPI 01988 ZwPulseEvent ( 01989 IN HANDLE EventHandle, 01990 OUT PLONG PreviousState OPTIONAL 01991 ); 01992 01993 NTSYSAPI 01994 NTSTATUS 01995 NTAPI 01996 ZwQueryDefaultLocale ( 01997 IN BOOLEAN ThreadOrSystem, 01998 OUT PLCID Locale 01999 ); 02000 02001 #if (VER_PRODUCTBUILD >= 2195) 02002 02003 NTSYSAPI 02004 NTSTATUS 02005 NTAPI 02006 ZwQueryDirectoryObject ( 02007 IN HANDLE DirectoryHandle, 02008 OUT PVOID Buffer, 02009 IN ULONG Length, 02010 IN BOOLEAN ReturnSingleEntry, 02011 IN BOOLEAN RestartScan, 02012 IN OUT PULONG Context, 02013 OUT PULONG ReturnLength OPTIONAL 02014 ); 02015 02016 #endif /* (VER_PRODUCTBUILD >= 2195) */ 02017 02018 NTSYSAPI 02019 NTSTATUS 02020 NTAPI 02021 ZwQueryInformationProcess ( 02022 IN HANDLE ProcessHandle, 02023 IN PROCESSINFOCLASS ProcessInformationClass, 02024 OUT PVOID ProcessInformation, 02025 IN ULONG ProcessInformationLength, 02026 OUT PULONG ReturnLength OPTIONAL 02027 ); 02028 02029 NTSYSAPI 02030 NTSTATUS 02031 NTAPI 02032 ZwReplaceKey ( 02033 IN POBJECT_ATTRIBUTES NewFileObjectAttributes, 02034 IN HANDLE KeyHandle, 02035 IN POBJECT_ATTRIBUTES OldFileObjectAttributes 02036 ); 02037 02038 NTSYSAPI 02039 NTSTATUS 02040 NTAPI 02041 ZwResetEvent ( 02042 IN HANDLE EventHandle, 02043 OUT PLONG PreviousState OPTIONAL 02044 ); 02045 02046 #if (VER_PRODUCTBUILD >= 2195) 02047 02048 NTSYSAPI 02049 NTSTATUS 02050 NTAPI 02051 ZwRestoreKey ( 02052 IN HANDLE KeyHandle, 02053 IN HANDLE FileHandle, 02054 IN ULONG Flags 02055 ); 02056 02057 #endif /* (VER_PRODUCTBUILD >= 2195) */ 02058 02059 NTSYSAPI 02060 NTSTATUS 02061 NTAPI 02062 ZwSaveKey ( 02063 IN HANDLE KeyHandle, 02064 IN HANDLE FileHandle 02065 ); 02066 02067 NTSYSAPI 02068 NTSTATUS 02069 NTAPI 02070 ZwSetDefaultLocale ( 02071 IN BOOLEAN ThreadOrSystem, 02072 IN LCID Locale 02073 ); 02074 02075 #if (VER_PRODUCTBUILD >= 2195) 02076 02077 NTSYSAPI 02078 NTSTATUS 02079 NTAPI 02080 ZwSetDefaultUILanguage ( 02081 IN LANGID LanguageId 02082 ); 02083 02084 #endif /* (VER_PRODUCTBUILD >= 2195) */ 02085 02086 NTSYSAPI 02087 NTSTATUS 02088 NTAPI 02089 ZwSetInformationProcess ( 02090 IN HANDLE ProcessHandle, 02091 IN PROCESSINFOCLASS ProcessInformationClass, 02092 IN PVOID ProcessInformation, 02093 IN ULONG ProcessInformationLength 02094 ); 02095 02096 NTSYSAPI 02097 NTSTATUS 02098 NTAPI 02099 ZwSetSystemTime ( 02100 IN PLARGE_INTEGER NewTime, 02101 OUT PLARGE_INTEGER OldTime OPTIONAL 02102 ); 02103 02104 NTSYSAPI 02105 NTSTATUS 02106 NTAPI 02107 ZwUnloadKey ( 02108 IN POBJECT_ATTRIBUTES KeyObjectAttributes 02109 ); 02110 02111 NTSYSAPI 02112 NTSTATUS 02113 NTAPI 02114 ZwWaitForMultipleObjects ( 02115 IN ULONG HandleCount, 02116 IN PHANDLE Handles, 02117 IN WAIT_TYPE WaitType, 02118 IN BOOLEAN Alertable, 02119 IN PLARGE_INTEGER Timeout OPTIONAL 02120 ); 02121 02122 NTSYSAPI 02123 NTSTATUS 02124 NTAPI 02125 ZwYieldExecution ( 02126 VOID 02127 ); 02128 02129 #pragma pack(pop) 02130 02131 #ifdef __cplusplus 02132 } 02133 #endif Generated on Fri May 25 2012 04:31:57 for ReactOS by
1.7.6.1
|