windows-nt/Source/XPSP1/NT/inetsrv/query/h/ntopen.hxx
2020-09-26 16:20:57 +08:00

55 lines
2.1 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1998.
//
// File: NtOpen.hxx
//
// Contents: Helper routines over Nt I/O API
//
// History: 09-Dec-97 Kyle Added header
//
//----------------------------------------------------------------------------
#pragma once
HANDLE CiNtOpen( WCHAR const * pwcsPath,
ACCESS_MASK DesiredAccess,
ULONG ShareAccess,
ULONG OpenOptions );
NTSTATUS CiNtOpenNoThrow( HANDLE & handle,
WCHAR const * pwcsPath,
ACCESS_MASK DesiredAccess,
ULONG ShareAccess,
ULONG OpenOptions );
inline BOOL IsSharingViolation( DWORD dwStatus )
{
return STATUS_SHARING_VIOLATION == dwStatus ||
STATUS_OPLOCK_NOT_GRANTED == dwStatus ||
STATUS_OPLOCK_BREAK_IN_PROGRESS == dwStatus ||
ERROR_SHARING_VIOLATION == dwStatus ||
FILTER_E_IN_USE == dwStatus ||
STG_E_SHAREVIOLATION == dwStatus ||
HRESULT_FROM_WIN32(ERROR_SHARING_VIOLATION) == dwStatus;
}
inline BOOL IsNetDisconnect( DWORD dwStatus )
{
return STATUS_BAD_NETWORK_NAME == dwStatus ||
STATUS_LOGON_FAILURE == dwStatus ||
STATUS_NETWORK_UNREACHABLE == dwStatus ||
STATUS_NETWORK_NAME_DELETED == dwStatus ||
STATUS_BAD_NETWORK_PATH == dwStatus ||
STATUS_NETWORK_BUSY == dwStatus ||
STATUS_UNEXPECTED_NETWORK_ERROR == dwStatus ||
STATUS_VIRTUAL_CIRCUIT_CLOSED == dwStatus ||
STATUS_LOCAL_DISCONNECT == dwStatus ||
STATUS_REMOTE_DISCONNECT == dwStatus ||
STATUS_REQUEST_NOT_ACCEPTED == dwStatus ||
STATUS_HOST_UNREACHABLE == dwStatus ||
STATUS_PROTOCOL_UNREACHABLE == dwStatus ||
STATUS_LINK_FAILED == dwStatus;
}