ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntifs.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.