#include <ddk/ntddk.h>
#include <internal/ifs.h>
#include <ddk/ntifs.h>
+#include <ntos.h>
#define NDEBUG
#include <internal/debug.h>
* NAME EXPORTED
* FsRtlCheckLockForReadAccess
*
+ * @implemented
*/
BOOLEAN
STDCALL
* NAME EXPORTED
* FsRtlCheckLockForWriteAccess
*
+ * @implemented
*/
BOOLEAN
STDCALL
* NAME EXPORTED
* FsRtlFastCheckLockForRead
*
+ * @implemented
*/
BOOLEAN
STDCALL
* NAME EXPORTED
* FsRtlFastCheckLockForWrite
*
+ * @implemented
*/
BOOLEAN
STDCALL
* NAME EXPORTED
* FsRtlFastUnlockAll
*
+ * @implemented
*/
NTSTATUS
STDCALL
* NAME EXPORTED
* FsRtlFastUnlockAllByKey
*
+ * @implemented
*/
NTSTATUS
STDCALL
//walk pending list, FIFO order, try 2 complete locks
PLIST_ENTRY EnumEntry;
PIRP Irp;
- PIO_STACK_LOCATION Stack;
+ PEXTENDED_IO_STACK_LOCATION Stack;
EnumEntry = LockToc->PendingListHead.Blink;
while (EnumEntry != &LockToc->PendingListHead)
{
Irp = CONTAINING_RECORD(EnumEntry,IRP, Tail.Overlay.ListEntry);
- Stack = IoGetCurrentIrpStackLocation(Irp);
+ Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp);
if (FsRtlpAddLock(LockToc,
Stack->FileObject,
&Stack->Parameters.LockControl.ByteOffset,
* NAME EXPORTED
* FsRtlFastUnlockSingle
*
+ * @implemented
*/
NTSTATUS
STDCALL
PFILE_LOCK_GRANTED Granted;
PIRP Irp;
PLIST_ENTRY EnumEntry;
- PIO_STACK_LOCATION Stack;
+ PEXTENDED_IO_STACK_LOCATION Stack;
assert(FileLock);
LockToc = FileLock->LockInformation;
{
Irp = CONTAINING_RECORD(EnumEntry, IRP , Tail.Overlay.ListEntry );
- Stack = IoGetCurrentIrpStackLocation(Irp);
+ Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp);
DPRINT1("%s, start: %i, len: %i, end: %i, key: %i, proc: 0x%X, fob: 0x%X\n",
(Stack->Flags & SL_EXCLUSIVE_LOCK) ? "EXCL" : "SHRD",
* RETURN VALUE
* NULL if no more locks.
*
+ * @implemented
*/
PFILE_LOCK_INFO
STDCALL
* NOTE
* Called when creating/allocating/initializing FCB
*
+ * @implemented
*/
VOID
STDCALL
* NAME EXPORTED
* FsRtlPrivateLock
*
+ * @implemented
*/
BOOLEAN
STDCALL
* NAME EXPORTED
* FsRtlProcessFileLock
*
+ * @implemented
*/
NTSTATUS
STDCALL
IN PVOID Context OPTIONAL
)
{
- PIO_STACK_LOCATION Stack;
+ PEXTENDED_IO_STACK_LOCATION Stack;
NTSTATUS Status;
IO_STATUS_BLOCK LocalIoStatus;
assert(FileLock);
- Stack = IoGetCurrentIrpStackLocation(Irp);
+ Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp);
Irp->IoStatus.Information = 0;
switch(Stack->MinorFunction)
* NAME EXPORTED
* FsRtlUninitializeFileLock
*
+ * @implemented
*/
VOID
STDCALL
* Only present in NT 5.0 or later.
* FCB FILE_LOCK struct should/is acording to DDK allocated from paged pool!
*
+ * @implemented
*/
PFILE_LOCK
STDCALL
* Only present in NT 5.0 or later.
* FCB FILE_LOCK struct should/is acording to DDK allocated from paged pool!
*
+ * @implemented
*/
VOID
STDCALL