static int OnMoveOptions(HWND hDlg) { TFileTestData * pData = GetDialogData(hDlg); FlagsDialog(hDlg, &pData->dwMoveFileFlags, IDS_MOVEFILE_FLAGS, MoveFileFlags); return TRUE; }
static int OnCreateOptionsClick(HWND hDlg) { TFileTestData * pData = GetDialogData(hDlg); bool bRelativeFile = (GetAsyncKeyState(VK_SHIFT) < 0); // Shall we edit desired access for relative file? if(bRelativeFile) { FlagsDialog(hDlg, &pData->dwOpenOptionsRF, IDS_OPEN_OPTIONS_RF, CreateOptionsValues); return TRUE; } // Show the dialog for desired access FlagsDialog(hDlg, IDC_CREATE_OPTIONS, IDS_CREATE_OPTIONS, CreateOptionsValues); return TRUE; }
static int OnCopyOptions(HWND hDlg) { TFileTestData * pData = GetDialogData(hDlg); FlagsDialog(hDlg, &pData->dwCopyFileFlags, IDS_COPYFILE_FLAGS, CopyFileFlags); return TRUE; }
static int OnShareAccessClick(HWND hDlg) { TFileTestData * pData = GetDialogData(hDlg); bool bRelativeFile = (GetAsyncKeyState(VK_SHIFT) < 0); // Shall we edit desired access for relative file? if(bRelativeFile) { FlagsDialog(hDlg, &pData->dwShareAccessRF, IDS_SHARE_ACCESS_RF, ShareAccessValues); return TRUE; } // Show the dialog for desired access FlagsDialog(hDlg, IDC_SHARE_ACCESS, IDS_SHARE_ACCESS, ShareAccessValues); return TRUE; }
INT_PTR FlagsDialog_OnControl(HWND hWndParent, UINT nIDCtrl, UINT nIDTitle, TFlagInfo * pFlags) { INT_PTR Result = IDCANCEL; DWORD dwFlags = 0; // Read the flags from the item if(DlgText2Hex32(hWndParent, nIDCtrl, &dwFlags) != ERROR_SUCCESS) return IDCANCEL; // Invoke the dialog Result = FlagsDialog(hWndParent, &dwFlags, nIDTitle, pFlags); if(Result == IDOK) Hex2DlgText32(hWndParent, nIDCtrl, dwFlags); return Result; }
static int OnSendRequestOplock(HWND hDlg, bool bRequestOplock) { REQUEST_OPLOCK_OUTPUT_BUFFER Out; REQUEST_OPLOCK_INPUT_BUFFER In; TFileTestData * pData = GetDialogData(hDlg); DWORD RequestedOplockLevel = 0; DWORD InputFlags = REQUEST_OPLOCK_INPUT_FLAG_ACK; // If the caller is requesting oplock, ask the user which one he wants if(bRequestOplock) { // Ask the user for flags if(FlagsDialog(hDlg, &pData->dwOplockLevel, IDS_OPLOCK_FLAGS, Win7OplockFlags) != IDOK) return TRUE; RequestedOplockLevel = pData->dwOplockLevel; InputFlags = REQUEST_OPLOCK_INPUT_FLAG_REQUEST; } // Prepare the input buffer // Note that value of 0 in In.Flags causes BSOD in FastFat.sys // memset(&In, 0, sizeof(REQUEST_OPLOCK_INPUT_BUFFER)); In.StructureLength = sizeof(REQUEST_OPLOCK_INPUT_BUFFER); In.StructureVersion = REQUEST_OPLOCK_CURRENT_VERSION; In.RequestedOplockLevel = RequestedOplockLevel; In.Flags = InputFlags; // Prepare the output buffer memset(&Out, 0, sizeof(REQUEST_OPLOCK_OUTPUT_BUFFER)); Out.StructureLength = sizeof(REQUEST_OPLOCK_OUTPUT_BUFFER); Out.StructureVersion = REQUEST_OPLOCK_CURRENT_VERSION; // Send the FSCTL to the file system return OnSendAsynchronousFsctl(hDlg, FSCTL_REQUEST_OPLOCK, &In, sizeof(REQUEST_OPLOCK_INPUT_BUFFER), &Out, sizeof(REQUEST_OPLOCK_OUTPUT_BUFFER)); }
static int OnAllocTypeBrowse(HWND hDlg) { FlagsDialog(hDlg, IDC_ALLOCATION_TYPE, IDS_ALLOCATION_TYPE, AllocationTypeValues); return TRUE; }
static int OnAllocAttributesBrowse(HWND hDlg) { FlagsDialog(hDlg, IDC_ALLOCATION_ATTRIBUTES, IDS_ALLOCATION_ATTRIBUTES, AllocationAttributesValues); return TRUE; }
static int OnDesiredAccessBrowse(HWND hDlg) { FlagsDialog(hDlg, IDC_DESIRED_ACCESS, IDS_DESIRED_ACCESS, DesiredAccessValues); return TRUE; }
static int OnShareAccessClick(HWND hDlg) { FlagsDialog(hDlg, IDC_SHARE_ACCESS, IDS_SHARE_ACCESS, ShareAccessValues); return TRUE; }
static int OnFileAttributesClick(HWND hDlg) { FlagsDialog(hDlg, IDC_FILE_ATTRIBUTES, IDS_FILE_ATTRIBUTES, FileAttributesValues); return TRUE; }
static int OnObjAtributesFlags(HWND hDlg) { FlagsDialog(hDlg, IDC_OBJ_ATTR_FLAGS, IDS_OBJECT_ATTRIBUTES_FLAGS, ObjAttrFlagsValues); return TRUE; }